分享

从C程序源文件讲起探讨内部构成及结构(printf()是C语言提供的输出函数可以简单理解为向屏幕输出文字或符号)

 山峰云绕 2023-05-07 发布于贵州

   (printf()是C语言提供的输出函数可以简单理解为向屏幕输出文字或符号)

https://m.toutiao.com/is/D3jEWKR/?= 


本文从C程序源文件讲起,探讨了源文件的内部构成,然后对C程序的结构做了进一步讨论,最后通过一个C程序实例,让读者对C程序结构有一个感性认识。

源文件

编写C程序,实际是编写C程序源代码,开发者需要把写好的源代码保存到一个文件中,这样源代码就不会丢失,并且可以被重新编辑和修改,并能被编译器读取,这种用于保存源代码的文件被称为源文件。源文件是一个文本文件,扩展名是“.c”,可以使用任何可编辑文本的编辑器编辑源文件。

一个C程序至少要包含一个源文件,复杂一些的C程序可能需要包含多个源文件。打开文本编辑器,编辑下面的C源文件:

#include <stdio.h>int main(){printf('Hello World\n');return 0;}

上面的源文件构成了最简单的C程序,它只有一个源文件,该源文件包含预处理命令和main()函数定义,在C程序中只能定义一个main()函数,该函数为C程序的执行入口,包含main()函数的源文件为C程序的主源文件。

上面源文件的第1行为预处理指令,预处理命令以“#”开始,编译器在开始工作之前,会先执行预处理指令,将预处理的结果和源代码合并到一起再进行编译处理。“include”是C语言提供的包含文件的预处理指令,指令后面为要包含的文件名称,“stdio.h”文件在C语言中被称为头文件,该文件的扩展名为“.h”,它定义了开发者可以使用的输入输出函数。若头文件使用一对英文尖括号将文件名称括起来,编译器会在系统路径下查找要包含的文件;若使用一对英文双引号将文件名称括起来,编译器会在当前项目目录下查找要包含的文件。

源文件第2行是main()函数的函数头,“main”是函数的名称,main()函数是C程序执行的起点,它可以返回一个值,也可以不返回值。“int”是C语言的关键字,它表示一个整数类型,main()会返回一个整数。若不需要main函数返回一个整数,可以使用“void”关键字替换“int”关键字,main()函数不会返回任何值。

源文件的第3、4行语句构成main()函数的函数体,函数体是函数要执行的内容,函数体由一对大括号封闭起来,内部是要执行的代码语句,函数体内可以包含多行代码语句。函数体内的每条语句用“;”结尾。“printf('Hello World\n');”语句是main()函数体内要执行的语句,该条语句在屏幕上产生一行输出“Hello World”,printf()是C语言提供的输出函数,可以简单理解为向屏幕输出文字或符号。括号中的内容称为函数的参数,在括号内可以看到输出的内容“Hello World”。

语句“return 0”是返回语句,该语句使main()函数终止运行,并向操作系统返回一个整数0。

C程序构成

完整C程序构成如图1-4所示。

图 1-4 C程序构成

一个完整的C程序包含一个或若干源文件和函数库。函数库是具有一定功能的函数集合,库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息,函数库一般会为开发者提供扩展名为“.h”的头文件,该头文件包含了函数库内的函数原型,开发者若要调用函数库内的函数,需要在源文件内使用“include”指令将该函数库对应的头文件包含进来。

C程序实例

【例1-1】编写面积计算器程序

编程思路:面积计算器程序可以分解为计算长方形的面积、计算正方形的面积、计算平行四边形的面积、计算三角形的面积四个子功能,每个子功能用一个源文件实现。面积计算器程序结构见图1-5。

图 1-5 面积计算器程序结构

按照功能划分,面积计算器程序共有五个源文件,主源文件为main.c,计算长方形面积的源文件为rectangle.c,计算正方形面积的源文件为square.c,计算平行四边形面积的源文件为paraller.c,计算三角形面积的源文件为triangle.c。

图 1-6 面积计算器程序功能划分

源文件1:计算长方形面积—rectangle.c

程序清单。

/*****************************************作者:创建日期:功能描述:计算长方形的面积*/double rectangle(double width,double height){return width*height;}

rectangle.c定义了计算长方形面积的函数rectangle(),该函数有两个形参,调用时需要传入两个实参。/*……*/内容为注释。后面计算面积的源文件均省略了注释。

源文件2:计算正方形面积—square.c

程序清单。

double square(double side){return side*side;}

源文件3:计算三角形面积—triangle.c

程序清单。

double triangle(double base,double height){return (base*height)/2;}

源文件4:计算平行四边形面积—paraller.c

程序清单。

double paraller(double base,double height){return base*height;}

主源文件—main.c

程序清单。

//引入C语言标准输入输出函数库//stdio.h是标准输入输出函数库的头文件#include<stdio.h>//引入自定义函数#include 'area.h'// 全局变量int g_op = 1;// 程序入口函数void main(){// 声明局部变量opprintf('-------欢迎使用面积计算器------\n');printf('按下数字 1 键:计算长方形面积\n');printf('按下数字 2 键:计算正方形面积\n');printf('按下数字 3 键:计算平行四边形面积\n');printf('按下数字 4 键:计算三角形面积\n');scanf('%d',&g_op);if( g_op == 1 ){printf('长方形面积为:%.2f',rectangle(20,30));}else if( g_op == 2 ){printf('正方形面积为:%.2f',square(20));}else if( g_op == 3 ){printf('平行四边形面积为:%.2f',paraller(15,9));}else{printf('三角形面积为:%.2f',triangle(15,9));}}

main.c源文件为主源文件,该源文件通过“include”预处理指令分别引入了C语言标准输入输出函数库和自定义计算面积的函数,“area.h”头文件描述了面积计算函数的原型。

area.h头文件清单。

/*****************************************文件名:area.h描述:面积计算函数原型头文件*/// 计算平行四边形面积的函数double paraller(double base,double height);// 计算三角形面积的函数double triangle(double base,double height);// 计算长方形面积的函数double rectangle(double width,double height);// 计算正方形方形面积的函数double square(double side);

main.c源文件定义了全局变量g_op,用于存储用户输入的数字。main()函数是程序入口函数,程序将从main()函数开始执行。printf()函数是C语言提供的标准输出函数,<stdio.h>描述了该函数的原型。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多