这似乎是一个相当愚蠢的问题,但我有一个我正在编写的库的头文件,我在其中声明了一些字符串常量:
#define CONST1 "Hello, World!"
#define CONST2 "Foo Bar"
// etc
库的源代码使用了这些常量,因此我需要在源代码中包含头文件:
#include <header.h>
void func() {
printf("%s\n", CONST1);
}
这导致最终用户不需要在他们使用库编写的任何源代码中包含头文件。这是最佳做法还是有替代方案?
最佳答案
是的,这是传统的方法。我建议(为清楚起见)您在预处理器符号前加上一些东西,使它们不太可能与用户应用程序代码或其他库发生冲突。
我不明白你的意思是用户代码不需要需要包含你的标题,但是......因为这些是预处理器符号,如果符号是对用户程序感兴趣。
如果字符串仅在您的库实现中内部使用,那么您或许可以将它们移至私有(private) header 以减少混淆。
关于c - 如果库使用#defines,应该在哪里声明库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817689/