VS #define _CRT_SECURE_NO_WARNINGS 1 添加了仍然报错

简介: 一些小的错误,往往让初学者抓耳挠腮VS #define _CRT_SECURE_NO_WARNINGS 1 一定要放在最开始的位置

在使用 Visual Studio 进行 C/C++ 开发时,调用一些不安全的函数(如 strcpy、strcat 等)会提示 _CRT_SECURE_NO_WARNINGS 警告。这些函数不安全,可能导致内存泄漏等问题,因此建议使用带 _s 后缀的函数(如 strcpy_s、strcat_s 等)来代替它们。


但有时候


#define _CRT_SECURE_NO_WARNINGS 1 明明添加了却还是不可以使用


1.png

#include <stdio.h>#include <string.h>#define _CRT_SECURE_NO_WARNINGS 1intmain() {
charstr1[] ="Hello";
charstr2[] ="World";
charcombined[20]; // 定义一个足够大的数组来存放合并后的字符串strcpy(combined, str1); // 将第一个字符串复制到合并后的数组中strcat(combined, " ");  // 在合并后的数组中加上一个空格strcat(combined, str2); // 再将第二个字符串连接到合并后的数组中printf("%s\n", combined); // 输出合并后的字符串return0;
}

解决办法 把#define _CRT_SECURE_NO_WARNINGS 1移到开头

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h>intmain() {
charstr1[] ="Hello";
charstr2[] ="World";
charcombined[20]; // 定义一个足够大的数组来存放合并后的字符串strcpy(combined, str1); // 将第一个字符串复制到合并后的数组中strcat(combined, " ");  // 在合并后的数组中加上一个空格strcat(combined, str2); // 再将第二个字符串连接到合并后的数组中printf("%s\n", combined); // 输出合并后的字符串return0;
}

问题已经解决

目录
相关文章
|
6月前
|
C++
解决VS中的_CRT_SECURE_NO_WARNINGS 1的警告问题
解决VS中的_CRT_SECURE_NO_WARNINGS 1的警告问题
83 1
|
11月前
|
小程序
小程序 define is not defined
小程序 define is not defined
128 0
|
6月前
LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
104 0
|
运维
使用 Secure CRT 上传或下载文件
Secure 运维工具的使用方法
150 0
|
编译器 C++
【为什么】C++中的#pragma once是干什么,和#include guard区别
【为什么】C++中的#pragma once是干什么,和#include guard区别
145 0
|
编译器
宏定义(#define)及相关知识
宏定义(#define)及相关知识
117 0
|
C语言
宏定义#define的使用
宏定义#define的使用
112 0
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
242 0
|
机器学习/深度学习
C中define的#和##
C中define的#和##
71 0
#define 以及##
#define 以及##
109 0