Menu Close

C语言的架构

1. C语言程序举例解释

一个完整的C语言程序是什么样的?大多数计算机语言都是从C语言开始的。

C语言框架很简单:

例:1.1

#include <stdio.h>
int main()
{
    return(0);
}

传统上,C语言程序以预处理器指令和原型开始。上面就是一个简单的C语言程序。

例1.2 函数调用 – 我们向计算机输入两个整数,由程序计算后输出最大值。

int max(int a,int b); /*函数说明*/ 

main() /*主函数*/ 
{ 
     int x,y,z; /*变量说明*/  
     printf("input two numbers:\n"); 
     scanf("%d%d",&x,&y); /*输入 x,y 值*/ 
     z=max(x,y); /*调用 max 函数*/ 
     printf("maxmum=%d",z); /*输出*/ 
 } 

int max(int a,int b) /*定义 max 函数*/ 
{ 
     if(a>b)return a;
    else return b; /*把结果返回主调函数*/ 
 }

%title插图%num

上面例1.2中程序的功能是由用户输入两个整数,程序执行后输出其中较大的数。

本程序由两个函数组成,主函数和 max 函数。函数之间是并列关系。可从主函数中调用其它函数。

max 函数的功能是比较两个数,然后把较大的数返回给主函数。max 函数是一个用户自定义函数。

可见,在程序的说明部分中,不仅可以有变量说明,还可以有函数说明。关于函数的详细内容将在以后介绍。

上例1.2 中程序的执行过程是,首先在屏幕上显示提示串,请用户输入两个数,回车后由scanf 函数语句接收这两个数送入变量 x,y 中,然后调用 max 函数,并把 x,y 的值传送给 max函数的参数 a,b。

在 max 函数中比较 a,b 的大小,把大者返回给主函数的变量 z,最后在屏幕上输出 z 的值。

%title插图%num

 

2. C 程序主要包括以下部分:

  • 预处理器指令
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

一. 预处理器指令

程序的第一行 #include<stdio.h>  是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。standard input output 文件。stdio是定义函数printf的库。 printf用于生成输出。 使用此功能之前,我们必须首先包含所需的文件,也称为头文件(.h)。

您也可以创建自己的函数,将它们分组在头文件中,并在程序顶部声明它们以使用它们。 要将文件包含在程序中,请使用预处理程序指令:

#include <file-name>.h

预处理程序指令总是在放在文件的开始行。

以“#”号打头的语句都是预处理指令。

  • #include 指令告诉 C 编译器要使用的外部代码所在的库文件名(称之为头文件),stdio.h 和 stdlib.h是最常见的头文件:
    • stdio 库中包含了那些能在终端设备读写数据(输入输出)的程序代码(函数);
    • stdlib 库中包含了分配计算机内存、中止运行程序以及获取随机数等的程序代码(函数)。
  • #define 指令定义程序中用到的一些不会变化的值(称之为常量)。

C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。

需要说明的是,C 语言规定对 scanf 和 printf 这两个函数可以省去对其头文件的包含命 令。 所以在本例中也可以删去#include<stdio.h>。

二. main 函数 (程序的主体部分)

在每个 C 语言程序中都需要包含一个 main 函数。这是程序的主体,每个可以单独执行的 C 语言程序都要有一个 main 函数作为程序的入口程序。

main函数后的一对圆括号,以及在圆括号后面的一对大括号,和包含在大括号内的一组程序代码构成。这个圆括号中可以放置需要在程序启动时传入 main 函数的参数。可以是一个,或者多个参数。而在这之后的大括号中的部分,就是这个程序的主体部分。里面是可以执行的程序语句或者注释等相关内容。

在例题中的主函数体中又分为两部分,一部分为声明部分,另一部为分执行部分。

三. 变量声明

声明是指变量或函数的类型说明。C语言规定,源程序中所有用到的变量都必须先声明,后使用,否则将会出错。这一点是编译型高级程序设计语言的一个特点,与解释型的 BASIC 语言是不同的。

int max(int a,int b); /*函数说明*/
int x,y,z; /*变量声明*/

以上两个声明声明了一个整型函数max和三个整型变量x,y,z. 不同的变量类型在 C 语言中会对应不同的内存分配大小。

四.语句和表达式

除了上面所讲的部分外,其余的部分是程序语句。 prinf 函数是向标准终端中输出格式化的文本。scanf函数是从标准终端输入格式化的文本。

语句一般是功能函数与分支结构的组合。程序会根据条件的变化来执行相应的操作,最终计算出我们需要的结果。

执行部分调用 printf 函数在显示器上输出提示字符串,请操作人员输入两个整数值。然后调用 scanf 函数,接受键盘上输入的数并存入变量 x,y 中。调用比较函数比较出两个数值大小然后打印出来。

五.注释语句

C语言中的注释有两种表示方式:

  • “块注释”,用符号“/*”和“*/”包围起来,可以放在程序的任意位置;
  • “行注释”,用符号“//”表示,一行内“//”之后的内容都是注释。

C源程序的结构特点

  • 一个C语言源程序可以由一个或多个源文件组成。
  • 每个源文件可由一个或多个函数组成。
  • 一个源程序不论由多少个文件组成,都有一个且只能有一个 main 函数,即主函数。
  • 源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源 文件或源程序的最前面。
  • 每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}” 之后不能加分号。
  • 标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再 加空格来间隔。

书写程序时应遵循的规则

从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:

  • 一个说明或一个语句占一行。
  • 用{} 括起来的部分,通常表示了程序的某一层次结构。
  • {}一般与该结构语句的第一 个字母对齐,并单独占一行。
  • 低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更 加清晰,增加程序的可读性。
  • 命名变量和函数一定要有意义。

在编程时应力求遵循这些规则,以养成良好的编程风格。

Posted in C语言

发表评论

相关链接