若要关闭 CRT 中的这些函数的弃用警告,定义 _CRT_SECURE_否_警告。To turn off deprecation warnings for these functions in the CRT, define _CRT_SECURE_NO_WARNINGS. 若要关闭有关弃用的全局变量的警告,请定义 _CRT_SECURE_否_警告_GLOBALS。To turn off warnings about deprecated global variables, define _CRT_SECURE_NO_WARNINGS_GLOBALS. 有关这些不推荐使用的函数和全局变量的详细信息,请参阅CRT 中的安全功能和安全库: c + + 标准库。
在 项目>属性>配置属性>C/C++>高级 选项右侧中的 禁用特定警告 后方的文本框中添加 4996,再次F5就可以运行啦。
还有,笔者在使用 gets 此函数时报错,这是因为 Microsoft Visual Studio 中 gets 被更安全的 gets_s 或 fgets 函数代替了,那根据实际选用 gets_s 和 fgets 函数啦。
gets_s()出现开始于C语言的C11标准,是原gets()的安全版本。gets()不进行数组范围检查,也就是说,你定义一个长度为n的数组,你可以使用gets()读入长度大于n的字符串,编译可能不会出错,但运行时就会出现数组越界或内存泄露的错误。vc c语言而gets_s()需指明待读字符串的长度参数,防止数组越界。
最后一个笔者遇到的一个小问题,就是当执行无限循环的语句时,CodeBlocks 直接关闭窗口或按 Ctrl + C 终止,在 Microsfot Visual Studio 2017 中也可以通过关闭命令提示符窗口直接终止运行,也可通过 Ctrl + C 终止,不过呢,这样会报错:
0x74C312B5 (KernelBase.dll)处(位于 ConsoleApplication1.exe 中)引发的异常: 0x40010005: Control-C
现在大概是可以好好写 C 了吧,用之前可以在 CodeBlocks 上运行的 C 代码在此中运行没什么问题吧。当然笔者也不保证,毕竟可能有些情况没有遇到呀。用 Microsoft Visual Studio 2017来撸 C 代码,听起来很有意思。与 Dev C++ 、 CodeBlocks 比起来,交互界面还行,在 工具>选项>环境>常规>视觉体验中有 蓝色、浅色和深色三种主题供选择。字体笔者就喜欢 Mac OS 的字体 SF Mono 和 Ubuntu 系统字体 Ubuntu Mono,这字体配上主题感觉很舒服。
笔者拿来撸了下码,对其感觉很好。
比如在 CodeBlocks 中整形变量没有取地址符 & 编译时不会报错,然而在输入数值进行赋值时就出错停止。而在 Microsoft Visual Studio 2017 则在你运行检查出来然后就报错,这样就避免了在输入好了数值回车时突然出错停止的尴尬情况;
同样的对一个字符类型变量如果没有指定其大小, Microsoft Visual Studio 2017 也会在运行前检查并报错,不像 CodeBlocks 当执行运用该变量时才出错停止。
对于未使用的定义变量,Microsoft Visual Studio 2017 也会提示
当然还有许多笔者没有发现的功能和未知的错误,如 Ctrl + K +D 格式化全部代码等等,不过经过以上设置后,想写个 C 代码是没有什么问题了,就笔者目前所能写的范围而言。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70587-7.html
谦逊有礼
TaobabyPanda