C 知识量:16 - 74 - 317
第一个示例中只涉及了一个main()函数,实际上一段“正常”的程序通常会包含许多的函数,下面一个复杂点的示例将包含三个函数:
#include <stdio.h> void James(void); void Julie(void); int main(void) { /*两个人介绍自己的年龄, James说*/ James(); //Julie说 Julie(); } void James(void) { int JamesAge = 24; printf("hello,Julie,I am %d years old.What about you?\n", JamesAge); } void Julie(void) { int JulieAge = 23; printf("I am %d years old.\n", JulieAge); }
以上代码包含了3个函数:一个main主函数;一个名为James的函数;一个名为Julie的函数。其中,James函数和Julie函数包含于main主函数中。具体的解析如下:
#include <stdio.h> 表示包含标准输入/输出库的信息,这样就可以在程序中调用输入输出的库函数。
void James(void); 表示函数声明,也叫函数原型,用于告知编译器在程序中要使用该函数。该行声明了James函数。
void Julie(void); 表示声明Julie函数。
int main(void) {...} 表示main主函数及其函数体。
/*...*/和// 表示注释语句,起解释说明作用,编译器将会忽略它们和其中的内容。其中,/*...*/可以一次注释多行;而//只能注释单行。
James()和Julie() 表示函数调用。即调用James函数和Julie函数,何时执行James函数和Julie函数就取决于它们被调用的位置。调用的方式就是写出函数的名称,后面加一个括号即可。
void James(void) {...} 表示函数定义,即函数本身的源代码。这里定义了James函数,void表明它不返回任何值,且没有任何参数。
int JamesAge=24; 表示声明一个名为JamesAge的变量并赋值为24。变量代表了在内存中存储数据的空间,它的名称可以自己决定,但不能使用系统保留的不允许使用的名称(即关键字),int规定了变量的类型为一个整数,=是赋值操作符,用于给变量赋值。24就是变量被赋的实际值。
printf("hello,Julie,I am %d years old.What about you?\n", JamesAge); 表示printf()是标准输入/输出库(stdio.h)中的函数。其名称中的“f”表示它是一个“格式化”的打印函数,引号内的文本就是打印的内容。其中,%d是一个占位符,表示这里将被一个整数代替,引号外面的JamesAge就是实际将打印的整数变量,它将替换%d。
void Julie(void) {...} 表示定义Julie函数。
可读性高的程序更容易被人理解,以后修改也更容易,因此,编写可读性高的程序是一个良好的编程习惯。下面是一些基本的提高程序可读性的技巧:
选择有意义的标识符名称,如变量名或函数名等,可以让人一看便知道其代表的含义。
及时为语句添加注释。
在函数中用空行分隔概念上的多个部分。
确保每条语句各占一行。
关键字是C语言的词汇,它们用于指定数据类型、控制语句执行顺序等,对C语言来说,是十分特殊的词,不能用它们作为标识符。C语言的关键字如下表所示:
auto | extern | short | while |
break | float | signed | _Alignas |
case | for | sizeof | _Alignof |
char | goto | static | _Atomic |
const | if | struct | _Bool |
continue | inline | switch | _Complex |
default | int | typedef | _Generic |
do | long | union | _Imaginary |
double | register | unsigned | _Noreturn |
else | restrict | void | _Static_assert |
enum |
return | volatile | _Thread_local |
如果将关键字作为自定义的函数名或变量名,编译器就会视为语法错误。
对于C语言的保留标识符,由于已经指定了用途或保留了它们的使用权,所以如果不当使用它们,即使编译器不报错,也可能会导致意想不到的问题,因此不要随意使用。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6