你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
海飞尸 提问时间:2019-5-24 12:00 /
#define ArrayLength(Array) (sizeof(Array) / sizeof(Array[0]))
Start_PCM_data_size = ArrayLength(Start_PCM_data);
../Src/dac.c(119): error:  #70: incomplete type is not allowed
收藏 评论4 发布时间:2019-5-24 12:00

举报

4个回答
edmundlee 回答时间:2019-5-24 13:02:26
用sizeof时,要写类型, 不要写对象, 比如

int Array[1234];

sizeof(Array)/sizeof(int);

或者你该试试别的方法

#define ArraySize   1234
int Array[ArraySize ];

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

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

andey 回答时间:2019-5-24 13:05:58
提示: 作者被禁止或删除 内容自动屏蔽
edmundlee 回答时间:2019-5-24 13:31:06
这样写的要通过是可以, 但必须是定义Array与 调用ArrayLength在同一个文件里, 否则sizeof反回0

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

byronsong 回答时间:2019-5-24 14:13:03
Start_PCM_data 的定义呢?

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版