fileA.c 有一个静态函数 (static int funcA())
无法修改 fileA.c。
fileB.c 如何使用 funcA()?
fileA.c 有一个静态函数 (static int funcA())
无法修改 fileA.c。
fileB.c 如何使用 funcA()?
一般来说,你不能,这就是static
本案的全部意义所在。
也许fileA.c
有办法获取函数的地址,然后你可以用它来进行调用,但你不能static
直接引用符号。
对于测试代码,经常使用的一个“技巧”是#include
测试文件中的 C 文件,因此fileA_test.c
您将拥有:
#include "fileA.c"
bool test_fileA_something(void)
{
TEST_ASSERT(foo() == 42);
}
上面假设这foo
是一个static
内部函数fileA.c
,并且由于文件是一起编译的,所以这是有效的。
不是。编译器完全有权不包含funcA
在 fileA.obj 中。即使它被包含在内,它也可能不是链接器可以使用的形式。事实上,如果包含它,它必须以不与其他函数名称冲突的方式funcA