怎么用VC2010编写一个C程序(编译原理、VC的构成以及用VC2010建立C程序)
一、调试是编程或者学习编程的核心技术
刚入门或者对编程不够精通的同志,在编程的过程中经常遇到各种问题,要么对提示的错误感到束手无策,要么就是不得要领,甚至编程很多年的同志都没有找到学习语言的要领!经常在群或者微信询问我学习编程的技巧或者解决问题之道,我给出的答案是调试是学习编程最重要的技巧、最重要的核心技术,调试和架构能力是区分程序员水平的重要标志。
不论对新手、老手甚至高手,就不存在没有问题的程序,可以说开发工程师就是为了解决各种问题而存在的,没有问题,开发工程师也就没有存在的必要了!因此有各种问题是正常的,没有问题才是最大的问题!
学习程序,解决遇到的问题,调试都是最有效的方法和手段!
比如,想了解程序的流程,执行调试,对程序的运行过程就能了如指掌,当然就能轻而易举掌握诸如IF ELSE等语法的功能。
通过变量的观察功能,我们就知道数据运算是否按照既定的方式完成的,问题出在哪里,其它诸多功能就不一一赘述,请大家自己通过不断的学习和实践来体会!
二、调试要解决的问题
1、程序的加工过程
(1)编写设计要求
(2)编写流程图
(3)完成局部功能代码
(4)多函数或者多文件联合调试
(5)编译链接生成可执行程序
(6)程序测试
2、调试要解决的问题
(1)编译过程中的错误(语法错误)
(2)链接过程中的错误(语法错我)
(3)程序测试(功能性错误)
前两种统称为语法错误,无法生成可执行程序,出现在局部函数完成的过程和多函数多文件联合调试过程,需要掌握编译、链接的原理和基本的语法排错技巧。
第3种通常称为BUG,能够通过编译和链接,生成能够正常执行的程序,但是存在一些不符合设计要求的功能,比如没有实现某些功能,程序崩溃、非正常退出、输出的数据错误等。
3、特殊调试
上述一般说的都是有源代码的调试,在现实应用中,还有很多调试,没有源代码,但是需要对程序进行调试、分析、逆向工程、破解等。通常把可执行程序进行反汇编,进行静态或者动态的调试,这种调试需要精通汇编语言、系统函数和操作系统的原理。
通常程序的发行需要对程序进行加密,这是商业程序必不可少的步骤和过程!软件教学过程确很少提到这个问题。
三、程序的编译原理及编译器的构成
通常我们都需要一套工具进行程序设计,我们就以常用的VC来说吧,他是一系列的的工具合集。
1、编程软件的组成
(1) 文本编辑器
用来编写源代码
(2)C程序编译器: cl.exe
如果安装了VC2010,我的是默认的安装路径,会在如下路径
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
中找到cl.exe可执行文件,他是C程序编译器, 用来把源代码生成*.OBJ文件,也就是点击“生成”下的子菜单“编译”按钮时,会调用cl.ece生成*.obj文件。
cl.exe的参数问题,在调用cl.exe时使用不同的参数可以完成不同的任务,由于本文重点所限,就不一一列觉它的参数和作用,请读者参考其它资料。在VC中他是通过IDE中不同的菜单或者选项来控制编译参数的。
(3)连接器:link.exe
link.exe 把若干的*.obj文件组装成可执行文件,一般还隐含了程序格式转换程序,即把生成的程序转换成特定的格式。
与cl.exe相同,link.exe一样有参数,在VC中他是通过IDE中不同的菜单或者选项来控制链接参数的。
(4)库管理
一般分为静态库和动态库,我们学习C语言的时候基本上都是静态库,在编译的时候就要加入相关库代码,最后链接生成可执行文件。库管理可以把一些功能代码做成库的形式,VC中静态库有2部分组成,一个是头文件,另一个是具体的代码库,比如match.h和对应的库文件*.lib,通过包含头文件来使用库。
(5)IDE
为了简化操作和管理功能,一般都会提供一个集成的IDE来管理各个功能。
四、使用VC2010建立一个C程序
安装好VC2010后,就可以用来学习C语言了。
1、新建一个项目
单开菜单:文件-新建-项目
图1:新建项目
2、新建win32控制台程序
在图1中点击“win32控制台程序”,名称位置输入LX,
图2:选择win32控制台程序
3、建立一个空的win2控制台程序
图3:建立一个空的win32控制台程序
4、添加C源文件
图4:添加C源文件
没有C源文件的,可以新建一个c++文件,文件名改成*.c既可。
右键点击“源文件”文件夹,在弹出的菜单中选择“添加”,在添加的下级菜单中选择“现有项目”
图5:打开添加文件对话框
点击“1.c”文件,点击“添加”
图6:添加C语言文件
4、编译C语言文件生成可执行文件
点击菜单“生成”下的“生成解决方案”
图7:程序成功编译
5、运行程序
点击菜单“调试”下的“开始运行(不调试)”
图8:程序运行结果
程序输出了要显示的内容,说明程序成功的运行了。
至此,VC的编译原理和结构,以及使用VC编译C程序就完成了。下期我们开始讲述调试功能的使用。
五:“LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决办法
由于连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。搜索本机C盘cvtres.exe文件,