debug版本:便于程序员调试代码
release版本:给用户使用的版本
一些很重要的快捷键:
F9:创建断点和取消断点
断点的作用是可以在程序的任意位置设置断点,打上断点就可以让程序执行到想要的位置暂停执行
F5:启动调试,经常用来直接跳到下一个断点处,一般和F9配合使用
F10:逐过程,通常来处理一个过程,一个过程可以是一次函数调用,或者是一条语句
F11:逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部
CTRL+F5:开始执行不调试,如果你想让程序直接运行起来而不调试则直接使用
宏定义:
宏定义常量:#define MAX 100 就把MAX变成100
宏定义:如果想定义一个求一个数的平方 #define SQUARE(x) x*x
这里有个易错点 如果我传的是SQUARE(2+5) 出来不会是49 因为是2+5*2+5 要加括号
这边我的建议是不要吝啬括号 写成#define DOULE(x) ((x)+(x)) 就是参数带上括号 整体带上括号
内存
栈区:局部变量 函数的参数
堆区:malloc calloc realloc free
静态区:全局变量,静态变量
动态内存申请头文件:stdlib.h
内存申请有可能失败 返回NULL 指针 故我们需要判断
int* p=(int*)malloc(20); if(p==NULL) { perror("use malloc"); exit; }申请内存后一定要释放内存
free(p);
p=NULL;
// 1. malloc:分配一块未初始化内存
void* malloc(size_t size);
// 2. calloc:分配n块、全部初始化为0
void* calloc(size_t num, size_t size);
// 3. realloc:重新调整已有内存大小
void* realloc(void* ptr, size_t new_size);