文章目录
编译器问题
vs2019
不能用scanf
使用VS会出现’scanf’: This function or variable may be unsafe. Consider using scanf_s
ins这种错误,这是新版vc库添加的警告因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。
解决方法:打开“项目”下的“ConsoleApplication1属性” 页面
点击配置属性—>c/c++—>预处理器
在预处理器定义那里添加一行==_CRT_SECURE_NO_DEPRECATE==即可
vs2010
配置方法
调试状态下没有memory窗口
dev-cpp
运行闪退
代码示例
#include<stdio.h>
int main ()
{
printf("hello world");
}
改动
#include<stdio.h>
int main ()
{
printf("hello world");
getchar();//getche();也可
}
c99标准设定(-std)
依次到【工具】-【编译选项】-【代码生成 / 优化】-【代码生成】。在【语言标准】中选择 “ISO C99” ,此后在编译的时候就可以使用 C99 或 C++ 11 标准了。
显示所有警告(-wall)
有个笑话:路尽头悬崖边上竖了块牌子写着 “Warning”,结果程序员全部掉了下去。
Warning 与 Error 不同,程序遇到 Error 就不能正常运行了(甚至都不能通过编译),而 Warning 是说明你的程序有不严谨的地方。新手程序员们应该认真对待 Warning,从而提升代码质量。
在 Dev C++ 中开启显示所有警告的方法如下:【工具】-【编译选项】-【代码生成 / 优化】-【代码生成】,在【代码警告】中将 “显示最多警告信息 (-Wall)” 设置为 Yes 即可。
上述设置其实是在编译时加入了 -Wall 参数。Wall 不是墙的意思,而是 Warning all,即显示所有警告。开启了 Wall 之后,在某种意义上你应该像对待 Error 那样对待 Warning。
产生调试信息(-g3)
有些版本的 Dev C++ 在刚刚安装完成后默认情况下是不能进行调试的,一旦点击调试按钮,会提示 “没有调试信息”,随后程序崩溃或闪退。
这是因为在编译源代码的时候没有加入调试信息。解决方法如下:【工具】-【编译选项】-【代码生成 / 优化】-【代码生成】,在【连接器】中将 “产生调试信息” 设置为 Yes。
只有产生了调试信息才能对程序进行断点调试。(f5)