海飞尸 发表于 2019-5-24 12:00:23

我想通过宏定义计算数组的大小,带到程序里面不能通过...

#define ArrayLength(Array) (sizeof(Array) / sizeof(Array))
Start_PCM_data_size = ArrayLength(Start_PCM_data);
../Src/dac.c(119): error:#70: incomplete type is not allowed

edmundlee 发表于 2019-5-24 13:02:26

用sizeof时,要写类型, 不要写对象, 比如

int Array;

sizeof(Array)/sizeof(int);

或者你该试试别的方法

#define ArraySize   1234
int Array;

然后直接用ArraySize , 就不用sizeof了

andeyqi 发表于 2019-5-24 13:05:58

这样写应该是可以的啊,Start_PCM_data这个类型的头文件都包了吗,是不是文件中引用不到

edmundlee 发表于 2019-5-24 13:31:06

这样写的要通过是可以, 但必须是定义Array与 调用ArrayLength在同一个文件里, 否则sizeof反回0

songshiqun2010 发表于 2019-5-24 14:13:03

Start_PCM_data 的定义呢?
页: [1]
查看完整版本: 我想通过宏定义计算数组的大小,带到程序里面不能通过...