gpt4 book ai didi

c - 您如何包含可能存在或可能不存在的头文件?

转载 作者:太空狗 更新时间:2023-10-29 17:06:44 24 4
gpt4 key购买 nike

假设我在 foo.h 中定义了 BAR。但是 foo.h 可能不存在。我该如何包含它,而不让编译器向我提示?

#include "foo.h"

#ifndef BAR
#define BAR 1
#endif

int main()
{
return BAR;
}

因此,如果在 foo.h 中将 BAR 定义为 2,则如果 foo.h 存在则程序返回 2,如果 foo.h 不存在则返回 1。

最佳答案

一般来说,你需要做一些外部的事情来做到这一点 - 例如通过做一些事情,比如玩弄搜索路径(如评论中所建议的)并提供一个空的 foo.h 作为后备,或者将 #include 包装在 #ifdef HAS_FOO_H...#endif 并通过编译器开关设置 HAS_FOO_H(-DHAS_FOO_H 用于 gcc/clang 等.).

如果您知道您正在使用特定的编译器,并且可移植性不是问题,请注意一些编译器确实支持包含一个可能存在或可能不存在的文件作为扩展名。例如,请参阅 clang 的 __has_include功能。

关于c - 您如何包含可能存在或可能不存在的头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569659/

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