- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
生成和运行C程序
生成与运行C程序
作者:终南?? HYPERLINK mailto:li.zhongnan@ li.zhongnan@
C是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数。不管什么问题,C都靠宏、指针、结构、数组和函数来解决。
C程序源代码
看一下这样一个C程序的源代码
//hello.c
#include stdio.h
main()
{
printf(Hello, world!\n);
return 0;
}
这个程序是在开始对Linux下C语言编程进行介绍时所举的C代码事例。
源代码的第一行是注释,第二行是包含指令,将头文件stdio.h包含在源文件中。在该头文件stdio.h中,定义了printf函数的原形。也就是说,通过包含stdio.h,编译程序时编译器就能够了解printf函数需要那些参数,返回设么类型的值。另外,对于集成开发环境(IDE)来说,通过包含头文件,就可以在用户编写代码时,自动生成代码或者给用户提示函数参数、结构的成员变量等信息。
头文件是一种抽象。就上面所举的例子来说,将“Hello, world!”显示在屏幕上不是你编写的代码直接完成的,而是间接的通过调用C语言标准库中的函数printf来实现的。该功能已经由编写 C语言标准库的那些程序员编写的代码实现了,这些代码也被编译成二进制的C标准库文件。我们编写程序想将“Hello, world!”输出到屏幕上,我们只要按照stdio.h头文件中定义的格式调用printf函数即可。很明显,头文件起到了规范、协议或接口的功能。
通常将头文件中包含的内容包括:
1. 数据类型
可以将多个功能模块共同使用的或者供其他程序在调用函数时用到的复杂数据类型(如结构、联合体、枚举等)定义在一个头文件中,这样当用到这些数据类型时,包含该头文件即可。
2. 函数原形
如以上事例所述,函数printf的原形被包含在stdio.h文件中,其他程序源代码在使用printf的时候,就能够了解到该函数如何使用。同时,也便于编译程序在编译的时候检查错误,比如,如果在源代码中写成printf(10),那么编写程序就会检查出这个错误。
3. 定义变量或定义宏
可以在头文件中定义普通变量或者通过#define指令定义宏,以便多个源代码文件共享使用。
除了要在自己编写代码中包含C语言标准库函数所涉及的头文件,一般也需要编写自己的头文件。按照上面所述,头文件起到协议和接口的作用,所以通常将一组彼此相关的数据类型、函数原形以及变量和宏写在头文件中。函数的实现代码写在普通C程序文件中。头文件的扩展名一般为.h,C程序文件的扩展名为.c。头文件和C程序文件共同组成了程序的源代码。
当一个人开始写C语言程序的时候,可能不会感觉到头文件存在的必要。但是如果是多个人开发一个程序,或者一个人编写一个很复杂的程序的时候,就会感觉到头文件存在的必要了。
举例一个非常简单的例子,假设有这样一个要求需要你用程序来实现:从控制台读取两个数字,计算其和并将结果输出到控制台。
我们可以将该程序分为两部分:
1. 写一个函数,计算两个数的和
2. 从控制台读取两个数,调用求和的函数,然后将结果输出
该程序可以由3个文件组成:
1. 头文件 add.h
#define NUM 100int add(int a, int b);
2. 包含求和函数代码的文件 add.c
int add(a, b){??????? return a + b;}
3. 从控制台读取两个数字,调用函数求和,输出结果到控制台的文件 main.c
#include stdio.h#include add.h
int main(){??????? int a, b;??????? printf(NUM = %d\n, NUM);??????? scanf(%d %d, a, b);??????? printf(%d + %d = %d\n, a, b, add(a, b));
??????? return 0;}
执行以下命令将main.c和add.c编译成可执行程序main:
gcc -o main main.c add.c
运行生成的可执行程序 main,输入两个数字,以空格隔开,然后按回车键,将会输出类似以下的结果:
1001 21 + 2 = 3
此处的举例虽然很简单,但是能看出头文件所起的作用。头文件的存在使得程序的结构清晰,便于组织编程,特别是对于大型复杂程序,对于那些需要多人合作的程序。下面是该程序的单文件版本:
#include stdio.h
int add(int a, int b);
int main(){??????? int a, b;??????? scanf(%d %d,
您可能关注的文档
- 微波技术和天线 刘学观 第2.3节.ppt
- 房地产企业税收政策和税收筹划B.ppt
- 微机系统原理和接口第6章.ppt
- 成本归集和分配综合案例分析.ppt
- 战略理论和产业发展.ppt
- 微机原理和接口技术第六章作业.doc
- 微机系统原理和接口技术复习题答案.doc
- 房地产开发和经营选择题练习.doc
- 战略和风险管理 第三章.doc
- 微机接口和原理4.ppt
- 老旧小区物业管理信息化建设与提升教学研究课题报告.docx
- 老龄社区活动设施使用现状与社区环境优化研究教学研究课题报告.docx
- 人工智能教育在初中阶段的应用与效果评估教学研究课题报告.docx
- 《养老服务机构失智老人照护服务中的心理护理与护理员职业倦怠干预研究》教学研究课题报告.docx
- 小学数学计算教学中学生数学思维与能力培养研究教学研究课题报告.docx
- 38亲子活动策划方案(3篇).docx
- 2025至2030中国谷物处理系统行业市场占有率及投资前景评估规划报告.docx
- 小学科学探究式学习中的问题设计与解决教学研究课题报告.docx
- 51活动策划方案(3篇).docx
- 基于大数据分析的高中美术教学评价体系构建研究教学研究课题报告.docx
文档评论(0)