在VS2017里写C语言有哪些函数的写法和在VC环境下写C语言是不一样的?
                            scanf --> scanf_s
                            gets  -->  gets_s

2个回答

VS2013开始,默认不允许使用不安全的函数。所谓不安全的函数就是指不会对缓冲区的边界做出检查的函数。
比如 strcpy(dest, src),如果前者只有10个字节的空间,后者有100个字节的字符串,这个函数会导致dest后面91个内存单元的数据被覆盖。

但是你还是可以通过定义_CRT_SECURE_NO_WARNINGS让2017允许编译这样的代码。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复: 不需要改变,vs2017里加上_CRT_SECURE_NO_WARNINGS还是可以用scanf gets strcpy等函数。
大约 2 年之前 回复
qq_43296485
菠菜_bocai 我想知道在VS2017里面编写C语言代码,有哪些函数的写法是需要改变的
大约 2 年之前 回复

后面加_S表示更高的安全性,因为字符串操作有些函数并没有检查长度溢出的问题导致安全漏洞的产生,所以高版本的VS建议使用安全的函数进行编程。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐