编写一个日志记录系统,我只想在一个模块中存储和修改一个数组(让我们称之为foo.c,带有一个适当命名的头文件foo.h),同时能够在main中访问它的内容。 C。在 foo.c 我有:
unsigned char log[4096] = {0};
而 main.c 如下:
#include "foo.h"
int main(){
extern unsigned char log[4096];
// code
return 0
}
产生错误:
错误:'log'重新声明为不同类型的符号
我这样做了吗?我尝试将extern日志声明为“log []”和“log”,但这些也无济于事。对这个问题的一点启示会有所帮助。谢谢!
答案 0 :(得分:2)
来自<math.h>
的问题是the log
function。最简单的解决方案是重命名数组。
答案 1 :(得分:0)
尝试将extern声明移到main之外,因为log是一个全局变量。
关键字extern基本上使编译器不会吐出错误,因为符号是在另一个模块中声明的。如果在链接时找不到符号,则会出现错误。