在file1.c中,我有数组
const uint8 myArray[] =
{
0x4b, 0x28, 0x05, 0xbf,
...
0xff, 0xff, 0xff, 0xff
};
在file2.c中,我需要如下使用数组:
uint8* buffer = myArray;
uint32 length = ???
我尝试过length = sizeof(myArray)
,但这会导致以下错误:
error: invalid application of ‘sizeof’ to incomplete type ‘const uint8[] {aka const unsigned char[]}’
。
由于它是常数,因此我可以从物理上计算条目的数量,但是我需要以编程方式进行操作,因为该常数可能会在开发中进一步改变。
答案 0 :(得分:4)
在file1.c
中,导出长度:
const size_t myArrayLength = sizeof(myArray);
然后在某处(在file1.c
的头文件中或直接在file2.c
中)添加声明,例如:
extern const size_t myArrayLength;