C primer plus 摘抄(第二章:C语言概述)

#include 指示和头文件

这是程序的第一行。该语句的作用相当于您在文件中该行所在的位置键入了文件stdio.h的完整内容。实际上,它是一种剪切和粘贴的操作。#include语句是C预处理器指令的一个例子。stdio.h文件作为所有C编译包的一部分提供,它包含了有关输入和输出函数(例如printf()的信息以供编译器使用。这个名字代表标准输入输出头文件standard input/output header)。最重要的是头文件包括了建立最终的可执行程序时编译器需要用到的信息。

为何不自动包含像输入输出这样基本的语句?因为并非所有的程序都要用到I/O(输入/输出)包,并且C语言的一个基本设计原则是避免不必要的成分。btw #include甚至不是C语言的语句。第一列中的#符号表明这一行是在编译器接手之前由C预处理的语句。

int main (void)

一个C语言程序总是从被称为main()的函数开始执行。您可以对所用的其他函数任意命名,但是main()必须是开始的函数。

int指明了main()的返回类型。返回到操作系统。函数后面的括号一般包含传递给函数的信息。这个简单的例子没有传递任何信息,因此圆括号内包含void。

老版的C代码:

main ()

这种形式开始。C90标准面前允许这种形式,但是C99标准不允许。因此即使您当前的编译器允许,也不要这么做。

您还将看到另一种形式:

void main ()

有些编译器允许这种形式,但是还没有任何标准考虑接受它。因此编译器不必接受这种形式。并且许多编译器也不这样做。再者说,如果坚持使用标准形式,那么当您把程序从一个编译器移到另一个编译器时也不会有问题。

注释

/*-----*/可以多行

//只能单行

声明

传统上C语言要求必须再一个代码块开始处声明变量,在这之前不允许任何其他语句。

现在C99遵循C++的习惯,允许把声明放在带代码块中的任意位置。然而,在首次使用变量之前仍然必须先声明他。

printf()函数允许多钟输出变量格式,包括十六进制(以16为基数)整数和带小数点的数。事实上printf()中的f暗示着这是一种格式化(formating)的输出函数。每一种数据都有自己的说明符。

程序可读的技巧:

1,选择有意义的变量名和使用注释。

2,使用空行分隔一个函数的概念上的多个部分。

3,每个语句使用一行。

void bulter(void)

第一个void说明bulter()不返回值。第二个void,也就是bulter(void)中的void,意思是bulter()函数没有参数。因此,当编译器到达main()函数中的bulter()的调用处时会检查butler()的使用是否正确。

还需要注意的是,bulter函数执行时间由main()函数调用它的位置决定,而不是由bulter()在文件中定义的位置决定的。例如,在本程序中,您可以把butler函数定义在main()函数的前面,程序的执行不会改变,bulter()函数仍然是在两次printf()调用之间执行的。请记住,所有的C程序都是从main()函数开始执行的,不管它在程序文件中处于什么位置。然而,C的习惯是把main()函数放在开头,因为它通常为程序提供了最基本的框架。

查错方法:

在程序的几个关键点处加入额外的printf()语句以监视所选变量的值。通过观察变量值的变化可以了解程序执行的情况。

原文地址:https://www.cnblogs.com/cmpunk/p/7507173.html