目录
1·Debug和Release的介绍。
1.Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 2.Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优 的,以便用户很好地使用。代码:
#include <stdio.h>
int main()
{
char *p = "hello bit.";
printf("%s\n",p);
return 0;
}
栈内存
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0;i <= 12; i++)
{
arr[i] = 0;
printf("hehe\n");
}
return 0;
}
i和arr是局部变量
因为局部变量是放在栈区上的
栈区的使用习惯是:先使用高地址,再使用低地址
数组随着下标的增长,地址是由低到高变化的
所以上面代码就越界了,就会造成死循环,就像下图一样
但是在release版本底下就不会死循环,releasel版本是做优化的
VScode使用release/debug编译c/cpp
vs编译的时候有release版本和debug版本,主要区别是当不需要进行断点调试的时候使用release版本编译可以对代码进行优化,加快运行速度。
经过资料查找和大佬博客,可以得到在tasks里面修改
"tasks": [
{
...//省略掉别的参数,只看要修改的部分
"args": [
"-g",//就是这个参数,-g是debug,-O2是release
"${file}",
"-o",
"${workspaceFolder}\\${fileBasenameNoExtension}.exe",
],
},
]