编程工具使用指南
1. GNU C 编译器的使用
GNU C 编译器(gcc)支持通过广泛的警告(使用 -Wall
和 -pedantic
选项)进行诊断。例如:
matthew@seymour:~$ gcc -Wall tux.c
tux.c:1: warning: return type defaults to 'int'
tux.c: In function 'main':
tux.c:2: warning: implicit declaration of function 'putchar'
当使用 gcc 构建 C 程序时,编译过程分为以下几个步骤:
1. C 预处理器解析文件 :按顺序读取文件行,包含头文件并进行宏替换。
2. 编译器解析修改后的代码 :确定是否使用了正确的语法,构建符号表并创建中间对象格式。大多数符号会被分配特定的内存地址,但其他模块中定义的符号(如外部变量)除外。
3. 链接阶段 :GNU C 编译器将不同的文件和库连接在一起,并通过解析之前未解析的符号来链接文件。
需要注意的是,大多数 C 程序如果遵循严格的 ANSI 规则,是可以用 C++ 编译器编译的。例如,标准的 hello.c
程序可以用 GNU C++ 编译器编译,文件通常命名为 hello.cc
、 hello.C