C随笔9 声明编译规则

Rusunflower / 2023-08-11 / 原文

调试发现 extern 声明的数组可以和定义的数组长度不一致。

而且其他文件的根据声明的长度去引用,是按照地址偏移去找的。

例如数组 定义  U8 A[2][10000]

声明 U8 A[2][100]

此时会造成的其他文件方位的数组成员 A[1][0] 实际上访问的是A[0][100],导致问题的发生。

所以检查地址是否一致是调查问题的利器