vs系列的IDE中,使用scanf等函数会收到编译器警告warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.这里讲到可以使用_CRT_SECURE_NO_WARNINGS消除警告。这里有一个奇怪的现象。
如果代码是
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
编译正常。的确成功消除警告。
但是有的新手加宏的时候是这样写的
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
这时候编译依然会出现警告。
好奇心驱使我围观一下这个宏是怎么返回作用的。#include<stdio.h> 上面右键 可以打开这个文档
然后,我们可以找到 scanf函数的声明
这里有几个宏,部分宏和要讲的内容无关。这里不做展开,有兴趣的同学可以单独探索。
我