c - #ifdef in c for filename 用于保护头文件中的静态函数

标签 c header-files

我遇到一种情况,我有一个头文件,并且必须包含在多个文件中。它有一些静态函数原型(prototype)。我想做这样的事情

#ifdef filename.c 
 static foo(void );
 static bar(int );
#endif

这意味着,如果我将其包含在名为 filename.c 的文件中,那么这些函数原型(prototype)就会处于事件状态,而如果包含在其他文件中,它们就会保持安静。

最佳答案

filename.c 是一个相对不常见的符号。除此之外,您需要在 filename.c 文件中显式定义一个符号。喜欢:

#ifdef FILENAME_C_ 
 static foo(void );
 static bar(int );
#endif

在你的filename.c-file

#define FILENAME_C_

您应该更喜欢FILENAME_C_中的下划线_版本,它更常见且更易于阅读。 然而,我不明白为什么你只声明这些函数?无论如何,您都需要在 filename.c 文件中定义它们。您想通过此实现什么目的?

关于c - #ifdef in c for filename 用于保护头文件中的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542889/

相关文章:

c - 我如何测试我的程序是否正在存储信息或覆盖它

如果将 C 文件包含在另一个文件中,则为 C 文件扩展名

C++ 'class' 类型重定义错误

c++ - g++ header 包括 : still doesn't find definition

c - 将调用上下文 GCC 预处理器宏值传播到目标函数

c - 为什么我在函数中创建的结构被覆盖?

c - 如何编辑文件中的特定值?

c++ - C/C++/Objective-C 文本识别库

C读取文本文件

objective-c - 前向声明和头文件的问题