C++
文章平均质量分 61
aisuperdoger
这个作者很懒,什么都没留下…
展开
-
telnet与防火墙
Telnet 命令通常用来远程登录,是TCP/IP协议族中的一员。Telnet 命令还可以作为别的用途,比如确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。默认情况下,Telnet 在端口 23 上运行。如果您的系统上正在运行任何防火墙,请确保启用必要的端口:sudo ufw allow 23sudo ufw reloadsudo ufw enabletelnet 命令的一般格式如下:telnet [hostname/ipaddress] [port number]下面的示例原创 2022-03-11 10:19:25 · 4983 阅读 · 0 评论 -
C++ signal() 函数
先看下面一段代码:#include <iostream>#include <csignal>#include <unistd.h> using namespace std; void signalHandler( int signum ){ cout << "Interrupt signal (" << signum << ") received.\n"; // 清理并关闭 // 终止程序原创 2022-03-10 19:33:12 · 3144 阅读 · 3 评论 -
c++ #define 宏的简单使用
1.#define 宏的使用:#define PI 3.1415926 // 把程序中出现的PI全部换成3.1415926#define S(a,b) a*b // area=S(3,2);第一步被换为area=a*b; ,第二步被换为area=3*2;// 实参如果是表达式容易出问题#define S(r) r*rarea=S(a+b); // 第一步换为area=r*r;,第二步被换为area=a+b*a+b;//正确的宏定义是 #define S(r) ((r)*(r))更具体原创 2022-03-10 14:40:38 · 833 阅读 · 0 评论 -
Visual Studio 2017 C++使用
1.安装只选下面这个就可以安装详情,自行百度2 项目建立流程2.1 新建项目我们将项目名称设为Test,解决方案名称设为Code。一个解决方案中可以建立多个项目。每一个项目都可以转化成一个exe或dll文件。点击确定以后出现下图窗口:点击确定以后就成功建立了项目。在视图菜单下可以找到解决方案资源管理器,通过解决方案资源管理器可以看到解决方案下的项目文件,如下图所示:右击“源文件”可添加cpp文件。2.2 安全开发生命周期(SDL)检查为了项目开发更加的安全,用VS开发C++程序默原创 2022-03-06 22:01:34 · 5442 阅读 · 1 评论 -
C++ using namespace std
1.namespace和usingC++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下:std::cout << std::hex<< 3.4<< std::endl;2、使用using关键字。using std::cout;using std::endl;以上程序可以原创 2022-02-28 19:49:45 · 137 阅读 · 0 评论 -
C++中的头文件(.h):预编译阶段,头文件被替换、如何写头文件
参考:链接1定义头文件是扩展名为 .h 的文件,头文件也是C++的源代码,头文件中包含了 C++中函数、类、对象等的声明和宏定义,它可以被多个源文件通过#include引用共享。使用头文件原因C++中有“单一定义”规则,即一个对象只能被定义一次,如果在一个源文件中定义了一个函数,其他的源文件想要使用这个函数就需要在使用前声明一下这个函数,在编译结束之后,编译器链接的时候再去查找这些函数的定义。故要使用其他文件中定义的函数、类、对象(变量)时,需要对函数、类、对象进行声明。这些声明文件一般放在一个头原创 2022-02-27 21:34:41 · 8664 阅读 · 1 评论 -
void指针(void*):void*存放任意对象的地址、通过(int*)a转换指针类型
void*是一种特殊的指针类型,可用于存放任意对象的地址。void *pv =&obj; // obj 可以是任意类型的对象1.作为函数形参#include <stdio.h>int void_test(void* data){ int num = 0; num = *(int*)data; // (int*)的作用是将data当成一个int指针(强制类型转换) printf("num = %d\n", num);}int main()原创 2022-01-27 10:04:35 · 1887 阅读 · 0 评论 -
C++ main函数参数:argc为是参数个数、argv[0]是程序名称
C++的main函数可以没有输入参数,也可以有输入参数,而且只能有两个参数,习惯上coding如下: int main(int argc, char* argv[]) 或者 int main(int argc, char** argv)其中,argc = argument count :表示传入main函数的数组元素个数,为int类型,而 argv = argument vector :表示传入main函数的指针数组,为char**类型。第一个数组元素argv[0]是程序名称,并且包含程序所在的完整路转载 2022-01-14 14:25:35 · 815 阅读 · 0 评论 -
C++用字符数组存储字符串
使用char类型的数组保存字符串。每个字符串都需要以’\0’结尾,所以字符串数组的长度最小等于字符个数+1三种等价的初始化方式:char str[12]={'H','e','l','l','o',',','W','o','r','l','d','\0'}; // 初始化列表char str1[12]="Hello,World"; // 指定字符数组长度,字符串末尾隐含设为'\0'char str2[]="Hello,World"; // 未指定字符数组长度,字符串末尾隐含设为'\0'当然还可原创 2022-01-14 14:09:28 · 4119 阅读 · 1 评论 -
size_t:记录数据大小无符号整型
1.不同系统定义不同size_t 的全称应该是size type,就是说size_t是用来记录数据大小无符号整型。size_t的真实类型与操作系统有关。在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;size_t在32位架构上是4字节,在64位架构上是8字节,在不同架构上进行编译时需要注意这个问题。而int在不同架构下都是4字节,与size_t不同;且int为带符号数原创 2022-01-08 10:39:34 · 673 阅读 · 0 评论 -
C++堆和栈详解(转)
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 如使用new分配的空间,最后需要delete释放空间。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初转载 2021-12-16 14:41:56 · 697 阅读 · 0 评论 -
矩阵乘法的MPI并行计算
链接原创 2021-12-06 19:45:09 · 1239 阅读 · 0 评论 -
OpenCL快速入门教程
参考链接一、OpenCL中的一些函数OpenCL的Kernel相当于CUDA的deviceOpenCL的Work-item相当于CUDA的threadOpenCL的Work-group相当于CUDA的blockOpenCL的ND-Range相当于CUDA的gridget_global_id(dim) :CUDA中需要计算线程的id,而在opencl中线程id直接通过这个函数直接获取get_global_size(dim):线程总数量get_group_id(dim):dim可以为0,1,2,原创 2021-12-04 20:43:24 · 2720 阅读 · 0 评论 -
CUDA编程入门
参考:链接我们用host指代CPU及其内存,而用device指代GPU及其内存。global:在device上执行,从host中调用(一些特定的GPU也可以从device上调用),返回类型必须是void,不支持可变参数参数,不能成为类成员函数。注意用__global__定义的kernel是异步的,这意味着host不会等待kernel执行完就执行下一步。device:在device上执行,单仅可以从device中调用,不可以和__global__同时用。host:在host上执行,仅可以从host上原创 2021-12-01 16:40:35 · 1215 阅读 · 0 评论 -
gcc编译和gdb调试的学习
gcc与g++基本用法GCC编译流程分为四个步骤: 编译预处理、编译、汇编和链接gcc最基本的用法是∶gcc [options] [filenames]使用gcc可以让源文件编译停在上述四个编译步骤的某一步,具体如下:预编译(Pre-Processing)预编译是在程序被编译之前为编译器所做的一些准备工作,主要是 拷贝包含的头文件到源程序文件、把宏替换成具体的数和处理条件编译。我们使用-E选项来使得GCC编译器在完成预处理后停止执行。g++ -E test.cpp-o test.i编译(C原创 2022-01-06 20:52:08 · 1225 阅读 · 0 评论