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;
}

问题已经解决

目录
相关文章
|
4月前
|
C++
解决VS中的_CRT_SECURE_NO_WARNINGS 1的警告问题
解决VS中的_CRT_SECURE_NO_WARNINGS 1的警告问题
38 1
|
4月前
LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
68 0
|
9月前
|
小程序
小程序 define is not defined
小程序 define is not defined
66 0
|
编译器 C++
【为什么】C++中的#pragma once是干什么,和#include guard区别
【为什么】C++中的#pragma once是干什么,和#include guard区别
131 0
configure: error: /usr/include/openssl is a bad --with-openssl prefix
configure: error: /usr/include/openssl is a bad --with-openssl prefix
424 0
cc1: all warnings being treated as errors
cc1: all warnings being treated as errors
220 0
|
机器学习/深度学习
C中define的#和##
C中define的#和##
61 0
#define 以及##
#define 以及##
94 0
解决vs2017中的_CRT_SECURE_NO_WARNINGS警告
解决vs2017中的_CRT_SECURE_NO_WARNINGS警告
332 0
解决vs2017中的_CRT_SECURE_NO_WARNINGS警告
|
存储 机器学习/深度学习 安全
#pragma warning(disable:4996)是啥?
#pragma warning(disable:4996)是啥?
672 0
#pragma warning(disable:4996)是啥?