如果我以这种方式将函数实现为弱函数,例如:
a.h:
int func1();
交流:
#include "a.h"
__attribute__((weak)) int func1() {
...
}
是否可以在另一个文件中实现此函数,例如X. c作为静态函数?例如:
#include "a.h"
static int func1(void) { <<----------- error
...
}
我试着去做,但我得到了这个错误:
error: static declaration of `func1` follows non-static declaration
但是我不知道为什么我不能这样做..毕竟,这是一个静态函数,只在X.c
文件中..
1条答案
按热度按时间vwkv1x7d1#
您将.h文件包含在函数
func1
的一些原型中然后你尝试在包含该定义的文件中定义它。定义和声明不匹配。编译器不知道使用哪一个,它正在抱怨它。你需要有相同的原型和定义-否则,它会失败。