《C语言教程》01章 C语言程序的构成


与C++、Java相比,C语言其实很简单,但却非常重要。因为它是C++、Java的基础。不把C语言基础打扎实,很难成为程序员高手。

一、C语言的结构

先通过一个简单的例子,把C语言的基础打牢。


/* clang01_1.c */
#include <stdio.h>

int main(void)
{
    printf("这是劝学网的C语言教程。\n");

    return 0;
}

C语言的结构要掌握以下几点:

  1. C语言的注释是/* ··· */,而不是//···,//是C++的单行注释,有的C语言版本也认可。
  2. C语言区分大小写,每句以分号结尾。
  3. C语言程序是从main函数开始的。函数的返回值如果缺省则为int,而不是void。
  4. 函数必须用return来返回。即使void类型也不建议省略。
  5. 使用函数时须包含相应的头文件。自定义的头文件用双引号,C语言自身的头文件用<···>

二、main()函数的写法与含义

main()的参数和返回值全部省略,这和上例含义相同。省略写法是一种很不好的习惯。

main()                       int main(void)
{                            {
    ···       等同于          ···
}                            }
    

main()的参数是一种不限个数的写法,argc代表参数的个数,真正的参数是放在argv[]数组里面的。注意:当数组当参数用时,数组被降格为指针。初学者先照着样子写,以后小雅会详细说明指针和数组的区别。

int main(int argc, char *argv[])                   int main(int argc, char **argv)
{                                                  {
    ···                       也可写成              ···
}                                                  }
    

三、头文件的意义

每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C 程序的定义文件以“.c”为后缀。

头文件的内容也可以直接写C程序中,但这是很不好的习惯。许多初学者用了头文件,却不明其理。在此略作说明。

  1. 通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功 能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
  2. 头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中 的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的 负担。

关于头文件的内容,初学者还必须注意。

  1. 头文件中可以和C程序一样引用其它头文件,可以写预处理块,但不能写语句命令。
  2. 可以申明函数,但不可以定义函数。
  3. 可以申明常量,但不可以定义变量。
  4. 可以“定义”一个宏函数。注意:宏函数很象函数,但却不是函数。其实还是一个申明。
  5. 结构的定义、自定义数据类型一般也放在头文件中。
  6. #include <filename.h>,编译系统会到C语言固定目录去引用。#include "filename.h",系统一般首先在当前目录查找,然后再去环境指定目录查找。

四、好的风格是成功的关键

版本申明、函数功能说明、注释等是C语言程序的一部分。不养成很好的习惯则不能成为C语言高手(专业人员)。