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

sizeof 结构体数组问题

[复制链接]
tanic 提问时间:2019-12-2 16:11 /
  1. 如下定义
  2. struct F_tab{
  3.         const char *F;
  4.         uint16_t angle;
  5. };
  6. const struct F_tab tab1_3[]={
  7. {"F1.8",0},
  8. {"F2",36},//4*9度
  9. {"F2.2",54},
  10. {"F2.5",72},
  11. {"F2.8",90},
  12. {"F3.2",108},
  13. {"F3.5",135},
  14. {"F4",153},
  15. {"F4.5",162},
  16. {"F5",180},
  17. {"F5.6",198},
  18. {"F6.3",216},
  19. {"F7.1",243},
  20. {"F8",270},
  21. {"F9",297},
  22. {"F10",324},
  23. {"F11",351},
  24. {"F13",378},
  25. {"F14",405},
  26. {"F16",423},
  27. };

  28. sizeof(tab1_3) 在MDK4下报错,MDK5下OK



复制代码


MDK4_1.PNG
MDK4_2.PNG
MDK5.PNG
收藏 评论5 发布时间:2019-12-2 16:11

举报

5个回答
tanic 回答时间:2019-12-2 17:14:11
偶然解决
定义必须sizeof同.c文件才行
extern声明的.c文件sizeof报错
原因不清楚
MDK5也是一样
七哥 回答时间:2019-12-3 10:51:43
atab1_3定义了吗?
tanic 回答时间:2019-12-3 16:37:31
toofree 发表于 2019-12-3 10:51
atab1_3定义了吗?

自然是定义了,只有定义在本文件才不会报错,
通过extern 方式引用到其他文件 数组内容可以访问   不过预编译sizeof()会报错
Genglilai 回答时间:2020-8-31 22:52:50
看一下是不是C标准的问题,试一下C99
cloudcn 回答时间:2020-9-7 12:00:29
这样玩比较悬
如果在同一个c文件 函数在变量定义后 能得到你想要的长度
如果在其它c文件 通过.h定义去取sizeof 是得不到长度的 一般是4 指针的长度

所属标签

相似问题

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