我使用了一些GNU扩展,并意识到如果我将gnu99设置为C标准使用,我可以省略#define _GNU_SOURCE。 gnu99是否意味着_GNU_SOURCE还是使用它还是强制性的以避免出现问题?
答案 0 :(得分:1)
您应该区分语言和库功能; -std = gnu99启用GNU语言功能,_GNU_SOURCE启用GNU库功能。
如果您使用任何库功能,我建议您定义_GNU_SOURCE,因此对于您的代码的读者来说很清楚。此外,当您的代码(而非)在提供GCC而非glibc的平台上进行编译时,这可能会使事情变得更加明显。