2.3.3 程序的编译与运行
当编辑好test.c后,下一步的工作就是验证我们编写的程序是否能解决例2.6的问题。首先我们应用C语言的编译程序对其进行编译,以生成以二进制代码表示的目标程序(后缀名一般为.obj)。当然我们在编译程序时,如果程序中有语法错误,编译程序就会指出该语法错误,而不生成二进制代码。比如在例2.6的源程序中,如果把a=n%10;改为a=n% 10,那么经过编译后,屏幕下方会出现如下一条信息:
Error TEST.C 6:Statement missing;
这条信息告诉我们,程序的第6行出现错误,错误是少了一个“;”,因为C语句结束后要有分号。对于初学者来说,对于编译后出现的信息,可能会感到无从下手,但实际上每条信息都会告诉编程者出现错误的地方和错误的原因,只要不断地进行经验的积累,应对这些编译中出现的问题就不再是难事。
当程序通过了语法检查、编译生成执行文件后,就可以运行该程序了。那运行程序时,是否就一定能得到我们所需要的结果呢?比如在例2.6的源程序中,如果把a=n%10改为a=n/10,该程序依然能通过语法检查,但运行结果却不是我们想要的。这就说明了编译这个过程一般只能检查语法(是否符合C语言的书写规则)错误,而不能检查语义(程序的逻辑功能)错误。如果程序有语义错误就需要不断地对程序进行调试,即在程序中寻找和调试错误。
根据以上的分析,我们对例2.6的源程序进行编译(Alt+F9),没有发现语法错误,然后开始运行程序(Crtl+F9),此时等待用户输入一个三位数(如265),按下回车键后回到编辑环境下,用户便可以查看程序的运行结果(Alt+F5)。具体结果如下:
当然这只是一组测试数据,用户在调试一个程序时,经常要输入多组数据来验证程序的正确性,防止程序出现漏洞。
经过上述详细介绍,我们掌握了编写一个C语言程序的基本步骤:问题分析与算法描述、程序的编辑、程序的编译与运行,这三个步骤都非常关键,缺一不可。对于初学者来说,面对需求解的问题时不要急于编写程序,一定要冷静地对问题进行分析,找到了解决问题的方法后,再按照C语言程序的组成结构,一步一步地完善程序。面对编译时出现的语法错误,也要细致地一个一个地进行修改,面对语义错误时,也要不断地进行调试。调试是一个需要耐心和经验的工作,也是程序设计的基本技能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。