Linux C 编程:特性测试宏、编译阶段与 Make 工具使用
1. 特性测试宏的定义与作用
在 C 编程中,特性测试宏起着关键作用,它能帮助我们指定使用的标准,确保代码的可移植性和正确性。
- 指定 C 标准 :当我们使用
-std=c99
这样的选项指定 C 标准时,编译器会进入严格的 C 标准模式,并禁用默认设置的特性测试宏。例如:
$> gcc -Wall -Wextra -pedantic -std=c99 \
> which-c.c -o which-c
$> ./which-c
Standard C version: 199901
- 设置
_XOPEN_SOURCE
:设置_XOPEN_SOURCE
为特定值会产生不同的效果。当设置为 600 时:
$> gcc -Wall -Wextra -pedantic -std=c99 \
> -D_XOPEN_SOURCE=600 which-c.c -o which-c
$> ./which-c
Standard C version: 199901
XOPEN_SOURCE: 600
POSIX_C_SOURCE: 200112