#define_CRT_SECURE_NO_WARNINGS为啥要优先放在其他库的调用预处理命令前

是的,在cl.exe的参数里面定义的宏最为“优先”,你应该这么用,不要写在代码里。而且那些_s函数,不仅大部分是C语言的新标准的内容,对于你确保程序安全也是有帮助的。你应该在不存在_s的地方全部把这些函数实现一遍,以后都用_s函数来写代码。不过我的业余项目对这个问题比较偷懒。因为反正已经在Windows上运行很多遍了,而且在_s外面也有其他代码验证了,同样的问题只要clang不要吃翔(这叫面向依赖(trust)编程),那么Linux上的_s函数不检查,也是不会有问题的(逃Vlpp/String.cpp at master · vczh-libraries/Vlpp · GitHub
■网友
这是最基本的文本预处理语言的概念C/C++的Macro就像环境变量一样,必须在用到之前就已经生效。在include顺序里,你不让它出现在判断它是否已定义的代码(通常是其它头文件)前面自然一点用也没有


    推荐阅读