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

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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版