 
- UID
- 852722
|

二、详细说明
现在,让我们进一步来了解每一行代码的含义。下面的内容很基础,也很重要,
必须认真弄懂,牢牢掌握。
1. #Include 预处理指令和头文件
在编译器对我们写的源程序进行编译之前,预处理器会对我们的写的源代码
进行必要的处理,称为预处理。#Include 就是一个预处理指令,它命令预处理器
进行的预处理是:把特定的头文件包含到我们的源代码里。
#Include <Stdio.H>的作用是将头文件 Stdio.H 里的内容包含进我们的程序,
产生的结果是将 Stdio.H 里的内容一字不漏地插入 #Include <Stdio.H>出现的
地方,并且删除 #Include <Stdio.H>。换句话说,就是用 Stdio.H 里的内容替换
#Include <Stdio.H>。这个过程是在预处理阶段完成的。C 语言的这种包含文件的
机制为多个程序共享相同信息提供了极大的方便。
Stdio.H 是 C 语言标准中定义了的头文件,它包含着输入输出函数的信息。
所有 C 编译器都应该有这个头文件,这是 ANSI/ISO C 标准中规定的。当然,
ANSI/ISO C 规定的编译器必须提供的头文件可不止这么一个。标准还规定了许多
别的头文件,那些我们会在以后慢慢学到。
有些程序需要包含 Stdio.H ,而有些不需要。如果上面这个例子中没有使用
Printf 函数,那就不需要包含 Stdio.H 。
头文件中包含着编译器进行编译时所需的信息。头文件中可能指明了函数名和
函数调用方法,但是这些函数的实现代码并不在头文件中,而是在预先编译好了的
库文件里。
链接器负责在库文件中寻找我们的程序所需的代码,并且把那些代码和我们写的
程序进行链接,从而将我的写的程序链接成可执行文件。一句话,头文件用于指导
编译器正确地将我们写的源程序编译成可执行文件。
2. Main 函数
在 C 语言中,Main 函数是主函数。每个 C 程序都必须有且只能有一个
Main 函数(主函数)!C 程序从 Main 函数开始执行,并且在 Main 函数中结束。
Int是 Main 函数的返回值类型,它表明 Main 函数应该返回一个整数给程序的
调用者(如操作系统)。
如果您想了解更多关于 Main 函数的东西,请点击下面的链接:
C/C++ 误区一:Void Main
3. 注释
/* A Simple Program */
/* */ 之间的内容都是注释。对程序进行适当的注释可以帮助读者(包括您自己)
更快更好地理解您写的代码。注释可以在源程序中的任何地方书写。/* 和 */ 之间的
任何内容(包括 /* 和 */)都会被编译器忽略掉。注意:/ 和 * 必须紧挨在一起,
它们之间不能有空格。
/* 我是注释 */
/*我是
跨行注释*/
/*
我也是注释
*/
以上的注释都是合法的;但下面的注释是非法的,因为没写注释结束标记 */。
/* 非法,没有注释结束标记
下面这个注释可能会出乎你的意料:
/* 我是注释开始标记
/* 哦哦,我不是注释开始标记
我是注释结束标记,我和第一个 /* 匹配,而不是和第二个 /* 匹配。*/
上面这个注释中,注释结束标记 */ 和第一个 /* 匹配,它们之间的内容
都被视为注释。
C99 中增加了另外一种注释方式,这种注释方式使用 // 作为注释符,和 //
处于同一行,并且在 // 右边的内容都被当作注释。/ 和 / 之间不能有空格。
// 我是注释
Int Rigue; //注释放在这里也是合法的
上面的注释在 C99 中是合法的,但是在 C89 中是非法的。也就是说,老旧的
编译器可能不支持 // 注释符。VC6 支持 //,TC2 不支持。
4. 大括号与函数体
C 语言中,所有函数都以大括弧({ })作为界定符。函数体从开大括弧 {
开始,以闭大括弧 } 结束。在后续教程中,我会对函数进行更详细的讲解。
5. Int Num;
这个语句声明了变量 Num 。这一行末尾的分号(;)表明这一行
是一个语句。; 是语句的一部分,单独一个 ; 也是一个合法的 C 语句。
Int 是 C 语言中的一个关键字,它代表 C 语言里的一种基本数据类型:整型。
关键字是语言的保留字,不能用作其它用途。例如:我们不能关键字来做变量名或者
函数名。
标识符是指我们为变量或函数等取的名字。在这个语句中,Num 就是标识符。
C 语言中,所有变量在使用前都必须声明。C89 中,变量的声明必须位于
函数体或者程序块的开端。例如:
Int Main( Void ) /* C89 */
{ /* 函数体开始 */
Int Doors;
Int Dogs;
Doors = 5;
Dogs = 3;
{ /* 程序块开始 */
Int Dig;
Int Dug;
Dig = 6;
Dug = 8;
} /* 程序块结束 */
Return 0;
} /* 函数体结束 */
而在 C99 中,声明可以位于函数体或者程序块的任何地方。但是,变量仍然
需要在声明之后才可使用。例如:
Int Main( Void ) /* C99 */
{ /* 函数体开始 */
Int Doors;
Doors = 5;
{ /* 程序块开始 */
Int Dig;
Dig = 6;
Int Dug;
Dug = 8;
} /* 程序块结束 */
Int Dogs;
Dogs = 3;
Return 0;
} /* 函数体结束 */
上面的程序在 C99 中是合法的,但是在 C89 中却是非法的。当前支持C99 的
编译器不多,所以上面的代码您的编译器很有可能编译不了。故而,为了使我们的
代码具有良好的可移植性,我们应该尽可能少用,甚至不用 C99 中的新特性。
6. 赋值
Num = 1;
赋值是 C 语言中的一种基本操作。上面的语句是一个赋值语句,它的含义
是:将 1 赋值给变量 Num 。赋值操作完成后,Num 的值等于 1 。
7. Printf 函数
Printf( "This Is A Simple C Program. " );
Printf( "My Favorite Number Is %D Because It Is First. ", Num );
这两行代码都调用了 Printf 函数。Printf 是一个标准 C 函数,也就是说,
它是 C 语言标准函数库里定义了的函数。圆括号 () 表明 Printf 是一个函数,
圆括号里的内容会被传递给 Printf 函数。例如,上面第一行代码把“This Is A
Simple C Program. ”(不包括双引号)传递给 Printf 函数,然后由 Printf
函数把这些信息显示于显示器。是换行符,它提示 Printf 开始新的一行。
正因为 是换行符,所以 不会显示出来,而是进行了换行。如果上面的语句中
没有 ,那就不会换行。
上面代码第二行中的 %D 告诉 Printf 用 Num 的值替换掉 %D ,并且以
整数形式显示 Num 的值。
%D 被称为占位符,它告诉 Printf 应该在什么地方显示 Num 的值。% 用于
提醒 Printf 在此处显示一个变量的值(本例中是 Num 的值);D 告诉 Printf 以
十进制整数的形式显示 Num 的值。
8. Return(返回)语句
Return 0;
这个 Return 语句是我们程序中的最后一个语句。Int Main( Void ) 中的 Int
表示 Main 函数应该返回一个整数,所以我们要使用 Return 语句来返回一个整数。
如果您想了解更多关于返回值的东西,请点击下面链接,查看文章的第四点。
C/C++ 误区一:Void Main
上面所说的某些内容您暂时可能还不太理解,但是不用害怕,牢牢地把它们记住,然后继续往下学吧!随着学习的深入,就会逐渐搞明白。现阶段只要有这个概念就足够了。 |
|