c - 在 C 的另一个模块中声明 extern 数组

标签 c arrays declaration extern

编写一个日志系统,我只想在模块中存储和修改一个数组(我们称之为 foo.c,带有适当命名的头文件 foo.h),同时能够访问 main 中的内容。 C。在 foo.c 中我有:

unsigned char log[4096] = {0};

ma​​in.c如下:

#include "foo.h"
int main(){
    extern unsigned char log[4096];

    // code

    return 0
}

这会产生错误:

error: 'log' redeclared as different kind of symbol

我这样做对吗?我尝试将外部日志声明为“log[]”和“log”,但这些也无济于事。对这个问题的一点启发将会有所帮助。谢谢!

最佳答案

问题是the log function来自<math.h> 。最简单的解决方案是重命名数组。

关于c - 在 C 的另一个模块中声明 extern 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38752602/

相关文章:

c - 写入作为结构成员的字符数组

sql-server - 根据列类型声明变量类型

c++ - 为什么#include 只完成声明和定义?

C 节点 - 如何不覆盖分配的内存空间而是创建新的(作业问题)

c++ - 使用 GTest 访问违规读取位置,无需任何复杂测试

python - CPython 内存堆损坏问题

c++ - 栈上数组与堆上数组的 sizeof()

C 指针数组的 int 比较器

arrays - 有没有比 O(N) 更好的算法来找到由连续 block 组成的位数组中的第一个位集?

c++ - 有什么方法可以只内联一些对函数的选择性调用而不是全部?