gpt4 book ai didi

c++ - 标准应该在源代码中指定还是在 CPPFLAGS 中指定?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:46 24 4
gpt4 key购买 nike

#define _BSD_SOURCE 还是设置 CPPFLAGS=-D_BSD_SOURCE 更好?

在我看来,如果一段源代码依赖于特定标准,最好在代码本身中使用#define 明确说明。但是,很多评论建议在编译行上指定标准更为合适。从源代码中省略标准并仅在编译时指定它有什么优点?

最佳答案

如果您在源代码中指定定义,则存在相同的头文件可能包含在多个源文件(翻译单元)中但具有不同的预处理器定义的风险,这可能导致违反单一定义规则,这通常是一种痛苦调试。

通过为整个项目而不是在单个源文件中指定定义,可以最大限度地减少违反单一定义规则的可能性。

此外,如果需要添加新定义,您只需更改一个 makefile,而不是所有源文件。

关于c++ - 标准应该在源代码中指定还是在 CPPFLAGS 中指定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4680944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com