一个很菜的问题,sizeof()怎不能计算了呢?

RICHARD9667 2008-11-23 06:52:45
在arm 的ads IDE 中,我定义了一个

uint32 LED_TBL[] = {1,3,4,56,6,4};
temp = (sizeof(LED_TBL)/(sizeof(*LED_TBL)));

编译没有出现错误提示,
语句中只要含有sizeof(LED_TBL),似乎编译就会省略,很奇怪????
但ads确又不能执行这条语句,直接跳到下条语句了

在这条语句后显示temp = 0;
有哪位能分析一下嘛?
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
P_ghost 2008-11-24
  • 打赏
  • 举报
回复
*LED_TBL这样用数组名的LZ还是看看书吧,数组名不是指针!
知道这个个人都不会对数组名解引用!
数组名只是在作为函数参数的时候会转换为底层指针。
iBug168 2008-11-24
  • 打赏
  • 举报
回复
如果真想lz说的...
那么你的那个编译器....

lz再好好看看自己的代码吧.
brookmill 2008-11-24
  • 打赏
  • 举报
回复
*LED_TBL 和 LED_TBL[0] 不是一样的吗?
ADS难道会有不同的处理?
就呆在云上 2008-11-23
  • 打赏
  • 举报
回复
在arm 的ads IDE 中,我定义了一个 

uint32 LED_TBL[] = {1,3,4,56,6,4};
temp = (sizeof(LED_TBL)/(sizeof(*LED_TBL)));


这个问题可能是你的编译器的问题
你用的ADS呵呵
这样你换一下:
temp = (sizeof(LED_TBL)/(sizeof(LED_TBL[0]))); 
giftfish 2008-11-23
  • 打赏
  • 举报
回复
vc 6.0 也是6
setoption9 2008-11-23
  • 打赏
  • 举报
回复
不懂,up
qap22 2008-11-23
  • 打赏
  • 举报
回复
不懂,up
帅得不敢出门 2008-11-23
  • 打赏
  • 举报
回复

unsigned int LED_TBL[]={1,3,4,56,6,4};
cout << (sizeof(LED_TBL)/(sizeof(*LED_TBL)));

gcc测试可以输出6
lzr4304061988012 2008-11-23
  • 打赏
  • 举报
回复

temp = (sizeof(LED_TBL)/(sizeof(LED_TBL[0])));

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧