c - C语言中,如何使用非当前文件的静态函数?

标签 c static static-functions

fileA.c 有一个静态函数 (static int funcA())

文件A.c无法修改。

fileB.c 如何使用 funcA()?

最佳答案

一般来说你不能,这就是这种情况下静态的全部意义。

也许fileA.c有办法获取函数的地址,然后你可以用它来进行调用,但你不能引用static符号直接。

对于测试代码,经常使用的一个“技巧”是在测试文件中#include C 文件,因此在fileA_test.c 中您将拥有:

#include "fileA.c"

bool test_fileA_something(void)
{
  TEST_ASSERT(foo() == 42);
}

上面假设 foofileA.c 内的一个 static 函数,并且由于文件是一起编译的,所以这是有效的。

关于c - C语言中,如何使用非当前文件的静态函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997287/

相关文章:

java - 其他类能够访问对象类型的数组列表

java - 为什么我不应该在 Web 界面上使用静态文本?

php - 在另一个类的变量中调用一个类的常量

c++ - 命名空间范围

objective-c - 如何在 objective-c 文件中使用转义闭包调用 swift 静态方法

c - 如何自动重构 C for 循环

c - 在液晶显示屏上显示时,例如 : after 36. 7 下一个数字是 37。我不知道为什么 36.8 和 36.9 被四舍五入

c - 对数组结构中的数据进行排序

c - aarch64 中的结构对齐

c - 将程序构建为库时处理静态函数