gcc / GNU:当我用-std = gnu99编译时,我还应该定义_GNU_SOURCE吗?

时间:2013-09-07 19:16:57

标签: c gcc gnu

我使用了一些GNU扩展,并意识到如果我将gnu99设置为C标准使用,我可以省略#define _GNU_SOURCE。 gnu99是否意味着_GNU_SOURCE还是使用它还是强制性的以避免出现问题?

1 个答案:

答案 0 :(得分:1)

您应该区分语言和库功能; -std = gnu99启用GNU语言功能,_GNU_SOURCE启用GNU库功能。

如果您使用任何库功能,我建议您定义_GNU_SOURCE,因此对于您的代码的读者来说很清楚。此外,当您的代码(而非)在提供GCC而非glibc的平台上进行编译时,这可能会使事情变得更加明显。