C语言的基本结构(一)

目录

1. C语言程序框架

1.1. 程序编译的过程

1.2. C语言程序结构分析


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)其注释的方法可以参考如下的编程规范

在文件开头之前注释:对文件的整体注释

/****************************************************************************
**文件名:
**文件的功能:
**文件的版权:
**文件说明:
**文件编写者:
****************************************************************************/

对函数的注释:在函数之前

/****************************************************************************
**函数名:
**函数的功能:
**函数的形参:介绍每个形参的作用,意义
**函数的返回值:对每个返回值进行说明
**函数使用注意事项:
**函数的方法说明:简单介绍以什么样的方法实现函数的功能,也可以不用介绍
**函数的版本号:
**编写作者:
**修改日期:
****************************************************************************/

总结 

 

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值