1. 程式人生 > >vs關於_CRT_SECURE_NO_WARNINGS警告說明

vs關於_CRT_SECURE_NO_WARNINGS警告說明

在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:     return
0;
 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 這個預定義。