vs關於_CRT_SECURE_NO_WARNINGS警告說明
阿新 • • 發佈:2018-11-29
在VS中呼叫 strcpy、strcat 等函式時會提示 _CRT_SECURE_NO_WARNINGS 警告,原因是這些函式不安全,可能會造成記憶體洩露等。比如:
1: #include <stdio.h>
2: #include <stdlib.h>
3: #include <string.h>
4:
5: int main(void)
6: {
7: char buf[1024];
8: sprintf(buf, "%s", "abc");
9: return0;
10: }
編譯時報錯如下:
1: error C4996:' sprintf": This function or variable may be unsafe. Consider using sprintf s instead. To disable deprecation, use(CRT_SECURE_NO_WARNINGS] See online help for details.
所以建議採用帶_s的函式,如strcpy_s,calloc_s。
當然,如果執意使用老版本、非安全版本函式,可以使用 _CRT_SECURE_NO_WARNINGS 標記來忽略這些警告問題。
方法一:
在寫程式碼的前面加上如下巨集定義:
#define _CRT_SECURE_NO_WARNINGS
方法二:
操作 vs 中,在專案 -> 屬性 -> C/C++ -> 前處理器 -> 前處理器定中新增 _CRT_SECURE_NO_WARNINGS 這個預定義。