我使用一些GNU扩展,并且意识到如果将gnu99设置为要使用的C标准,则可以省略#define _GNU_SOURCE。 gnu99是否暗示_GNU_SOURCE还是使用它更安全还是必须使用以避免问题?
您应区分语言和库功能; -std = gnu99启用GNU语言功能,_GNU_SOURCE启用GNU库功能。
我建议您使用任何库功能来定义_GNU_SOURCE,因此对于代码阅读者来说很清楚。同样,当您的代码在(未)提供GCC但不提供glibc的平台上进行编译时,这可能会使情况变得更加混乱。