vs调试技巧+宏定义+动态内存

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);