UNIX 系统下 C 语言编译选项与警告处理全解析
1. ANSI C 编译选项
在某些 UNIX 平台上,若要编译 ANSI C 源代码,需向编译器明确指示。例如,HPUX UNIX 编译器默认会认为正在编译较旧的 K&R C 代码,这通常会导致大量编译错误。因此,在 HPUX 上编译现代 C 源代码时,需提供 -Aa 选项。部分其他商业 UNIX 编译器也有类似要求。
2. 管理编译器警告
C 编译器常报告消息,可分为错误消息和警告消息。错误消息表明为使编译成功必须纠正的问题;警告则提醒程序员不良编程习惯以及程序运行时可能出现的问题。
建议始终使用可用的最大警告级别进行编译。这样能促使开发者解决所有源代码问题,直至编译时不再出现警告。仅在接手他人源代码且没时间修复所有警告原因时,降低警告级别才是合理的。
在 FreeBSD 和 Linux 系统下使用 GNU 编译器时,可通过添加 -Wall 选项开启最大警告级别。示例如下:
bash$ gcc -Wall hello.c
多数 UNIX 命令行选项中,选项字母与参数间无需空格,如 -Wall 和 -W all 等效。
3. 处理编译器警告消息
编译器使用高警告级别时,会报告所有可能的警告消息;低警告级别则仅报告最重要的消息,抑制其他消息。不过,使用高警告级别时,有时会因有效的 C 语言结构而收到警告
超级会员免费看
订阅专栏 解锁全文
3230

被折叠的 条评论
为什么被折叠?



