目录
1. C语言程序框架
C程序一般由头文件、主函数和函数三部分组成;从最简单的程序开始,对于大多数程序语言,第一个入门编程代码便是"Hello World!",一步一步的分析程序的编写到编译是进行的一个什么样的过程,程序如下所示:
#include<stdio.h> //头文件
int main(void) //主函数,程序的入口函数
{
/*代码区*/
printf("hello world\n"); //使用了printf函数
return 0; //返回0
}
程序运行效果如下
1.1. 程序编译的过程
程序编译步骤:预处理 --> 编译 --> 汇编 连接
(1)预处理在程序编译之前做的准备工作,主要包括:头文件的包含(include),宏定义(define,替换),条件编译(ifdef,ifndef)将源文件通过预处理生成预处理文件(xxx.i)
(2)编译: 将预处理过后的文件(预处理文件)编译生成汇编文件(xxx.s)
(3)汇编: 将汇编文件(xxx.s) 通过汇编 生成目标文件(xxx.o)
(4)链接: 通过链接过程,将目标文件生成可执行文件
1.2. C语言程序结构分析
- 头文件说明
#include <stdio.h>
(1)# : 预处理指令
(2)include : 文件包含指令,只能包含头文件,
xxx.h ----头文件
xxx.c ----源文件
(3)<>,"" : 表示搜索头文件的一种方式
< > : 库文件,库函数所在的头文件,系统自带的头文件表示程序会在系统目录(软件安装的目录)中查找头文件
"" : 适用于程序员自定义的头文件
(4)stdio.h : 标准输入输出的头文件,有关标准输入输出函数的声明都在该文件
(5)头文件:关于一类功能相近的函数的声明信息
如:pow()--求幂, sqrt()--开方
关于数学计算的功能 ------ #include <math.h>
关于字符串操作的功能 ------ #include <string.h>
关于输入输出功能 ------ #include <stdio.h>
注意:用到那个函数,则需要包含该函数的所在头文件
- 主函数的理解
int main(void) //main 函数
{
.......
return 0;
}
int 指明main()函数的返回值类型,表示函数的返回值类型是int型。函数名后面的括号一般包含传递给函数的信息,没有则表示为空,也可以写void
(1)int main(void),C99版本的C语言允许这种写法。
(2)main(),这种形式C90标准允许,但是C99标准不允许,所以不要采用这种形式
(3)void main(),有些编译器允许,但是没有任何标准考虑接受这种形式。
所以最好采用标准形式:int main(void)。
主函数除了上述写法,还有另一种写法,如下代码所示:
int main(int argc,char *argv[]) //主函数,程序的入口函数
这也是最常见的一种写法;第一个入参为命令行参数个数,第二个入参为命令行参数数组;通常用于实现需要从命令行获取参数的功能,这在嵌入式编程中运用比较广泛;但是在C89/C99/C11标准文档中只提供了两种main函数的写法:
int main(void) //主函数,程序的入口函数
{
//代码区
}
int main(int argc,char *argv[]) //主函数,程序的入口函数
{
//代码区
}
main函数结论:
1) C语言程序执行过程中,只执行main函数说明主函数是程序的入口函数,即程序是从主函数开始执行的,而不是从第一个函数开始执行;
2)main函数中语句执行。其他函数体的内容不执行;
3)main函数执行结束,意味着整体的C程序执行结束;
4)一个c程序,可以有main函数,有并且只有一个main函数,如果是两个则会出错;
5)main()书写只能是这样,不能写成其他形式;
6)主函数是自动调用,程序运行,主函数自动调用了,子函数必须人为调用才行
- 注释
1. 功能:解释说明,代码的调试
2. 特性:被注释掉的代码不再进行编译,即使有语法错误,也不会检测出来
3. 形式: 单行注释:// 之后的内容为被注释的内容。
多行注释: /**/ 其中的内容为被注释掉的内容。
4. 用法:
(1)对文件注释
(2)对函数注释
(3)对程序语句注释
(3)其注释的方法可以参考如下的编程规范
在文件开头之前注释:对文件的整体注释
/****************************************************************************
**文件名:
**文件的功能:
**文件的版权:
**文件说明:
**文件编写者:
****************************************************************************/
对函数的注释:在函数之前
/****************************************************************************
**函数名:
**函数的功能:
**函数的形参:介绍每个形参的作用,意义
**函数的返回值:对每个返回值进行说明
**函数使用注意事项:
**函数的方法说明:简单介绍以什么样的方法实现函数的功能,也可以不用介绍
**函数的版本号:
**编写作者:
**修改日期:
****************************************************************************/
总结