使用 VC08 编译和运行C语言程序

来源:互联网 发布:c语言难学吗 编辑:程序博客网 时间:2024/05/29 15:49

第一次写文章。大神勿喷。

一、为什么我会选用VC08而不是VC6或者更新的版本

          就目前而言,大部分学校教学过程中使用的是微软于1998年推出的Visual C++ 6.0(下面简称VC6)。VC6 推出的时候,流行的操作系统是Windows 95和Windows 98。而现在(2014年3月),全球范围看,Windows 用户使用最多的是 Windows 7 和 Windows XP。(数据来源于 Net Application)

         VC6 在 Windows XP 下使用也会有大量的 Bug,更何况是在 Windows 7 以及 Windows 8 上面使用呢?就我自己在 Windows 7 上使用的经历,只要从VC6 的菜单上打开文件,VC6 就会停止工作(当时的解决方法是把源代码直接拖进 VC6 ),不过这并不影响使用。后来,在不断使用的过程中,发现越来越多的 Bug,例如,编译的时候不知道什么原因,编译器卡住了,然后 VC 也关不了,只能通过任务管理器结束进程的办法来结束程序。

        于是我就开始尝试其他的开发工具。我用过 Dev-C++ 和 CodeBlock,也不是说这些工具不好,只是用起来不是很习惯(可能是我不会用)。于是就在网上寻找 VC 的升级版。最先找到的是最新版的 Visual Studio Express 2013。摸着摸着就找到方法,然后编译程序,报错。然后看错误,发现使用 scanf 函数就会报错


        具体错误信息为:This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. (该函数或者变量可能不安全,考虑使用 scanf_s 函数代替。使用 _CRT_SECURE_NO_WARNINGS 禁用该信息)

        解决方法有两个:一是使用 scan_s 函数,二是把信息禁用。第一种的方法,调用了 scanf_s 函数,后来我把使用了 scanf_s 函数的源码使用 gcc 编译,不能通过。

#include <stdio.h>int main(void){int a;scanf_s("%d", &a);printf("%d", a);return 0;}


        错误信息是:undefined reference to 'scanf_s' (未定义的引用 'scanf_s')。后来在网上找了一下,scanf_s 是微软的函数,只要不在 VC 里面编译就会报错。(不过,scanf_s 函数在 c11 里面已经转正;资料来源(维基百科))

        然后我尝试了第二种方法,使用宏定义来禁止这个错误信息。于是代码经过修改如下

// 这个宏定义一定要在 #include <stdio.h> 前面// 否则仍然是不能过编译#define _CRT_SECURE_NO_WARNINGS 0#include <stdio.h>int main(void){int a;scanf("%d", &a);printf("%d", a);return 0;}
        然后按 F7 编译通过了


        后来觉得这样写出来的代码在 VC 以为的工具编译会遇到很多麻烦。所以决定找一个旧版本。后来便找到 VC 08 Express。虽然不是开源,但它是免费工具。摸索到编译C语言的方法以后,把刚刚在 VS 2013 里报不安全的代码编译。VS 2013里的错误在 VC 08 里面只是警告。而且 VC 08 用起来速度上比 VS 2013 快很多。于是我就开始用 VC 08。

二、(正文)如何使用VC 08 编译 C 语言程序

         前面说了一大堆。现在才是本文的重点。使用过 VC 6 的人都知道,在 VC 6 里面运行 C 语言的程序有多种方法,最简单的,就是直接建一个源文件就可以了。但是,在VC 08 里面只是建立一个源文件,编译菜单的调试是灰色的。也就是说 VC 08 不允许直接编译 C 语言程序。

        后来也是度娘+自己摸索,找到方法。VC 08 编译的对象是一个解决方案(相当于 VC 6 中的工程文件),所以,运行之前需要建立一个解决方案。

        Step1. 建立空白解决方案

        在VC08的菜单中,依次单击:文件 -> 新建 -> 项目。然后会弹出一个新建项目的窗口。


        在左边的项目类型中,点击常规,然后右边会有一个空项目,选中,然后在下面输入项目的名称,然后点确定,一个空白的解决方案(一个空白的工程文件)就已经建好了。

        Step2. 建立一个源码文件

        项目创建完成后,VC 08 的主界面如下:


        用鼠标右键在源文件的文件夹中单击,菜单中选择添加,再点新建项。会弹出一个添加新项的对话框。


        按图上面的操作之后,点添加,代码文件就已经创建好了。接下来要做的东西写好代码,按 F5 编译运行程序。

三、使用 VC 08 写程序的一些问题

        1. 去除烦人的 scanf 警告信息

            虽然 VC 08 不会把 scanf 函数的不安全信息视为错误,但是编译的时候仍然会显示相应的警告信息。如果代码编译的时候有错,要在错误列表中不断向下滚动鼠标才能找到错误信息。很明显很那个...

           为了解决这个问题。我们可以使用预编译头(关于预编译头的知识,在这里不详细介绍)解决这个问题。只需要在源代码的最前面添加一句

#pragma warning(disable:4996)

           然后编译,是不是发现 scanf 函数不安全的警告信息全部屏蔽掉了?

       2. 程序一闪而过。

           可能习惯于使用 VC 6,每次程序运行以后都会暂停一下,显示控制台的内容。而 VC 08 则没有这样的设计。解决这个问题的方法有两种。第一种,就是使用 Ctrl + F5 运行程序(这个是只运行,不调试)。第二种,是在 main 函数的尾部通过代码进行暂停程序。(我个人多使用后者)

          

#pragma warning(disable:4996)#include <stdio.h>#include <stdlib.h>int main(void){int a;scanf("%d", &a);printf("%d", a);// 此句代码就是暂停程序执行// system() 函数在 stdlib.h 头文件中,使用前请先 include system("pause");return 0;}
         程序正常运行。到达 system("pause") 语句,整个程序暂停执行,并输出一句“按任意键继续...”(可能在不同系统中会有不同的输出)


        使用 VC 08 差不多一年,觉得 VC 08 也挺好用了。最近实验课发现自己已经不会用 VC 6 了。至于好用与否,则是根据个人习惯了。

0 0
原创粉丝点击