在一个新的代码库中工作,我遇到了一些看起来像这样的 C 代码:
static int* functionA(int* anInt);
#define functionA(anInt) ( <a 1 line '? :' function>)
也许这对于那些 C 编码比我的头脑更新鲜的人来说是显而易见的,但对我来说这看起来有点奇怪。编译器似乎同意,因为它吐出一条消息说明
错误:“functionA”声明为“静态”但从未定义。
(我使用的是 gcc 4.8.2。)
由于这已经出现在我们正在评估的一些库代码中,我假设对于某些编译器,有时这是有效的。请有人帮忙解释一下它什么时候有效?
我最好的猜测是这是一些老式的内联静态函数定义方式。但是,我很有可能会遗漏一些微妙的东西。对正在实现的目标进行解释也会有所帮助,但我真的想知道这段代码何时有效。