使用-std = gnu99编译时仍应定义_GNU_SOURCE吗?

问题描述 投票:2回答:1

我使用一些GNU扩展,并且意识到如果将gnu99设置为要使用的C标准,则可以省略#define _GNU_SOURCE。 gnu99是否暗示_GNU_SOURCE还是使用它更安全还是必须使用以避免问题?

c gcc gnu
1个回答
1
投票

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

我建议您使用任何库功能来定义_GNU_SOURCE,因此对于代码阅读者来说很清楚。同样,当您的代码在(未)提供GCC但不提供glibc的平台上进行编译时,这可能会使情况变得更加混乱。

© www.soinside.com 2019 - 2024. All rights reserved.