- 如下定义
- struct F_tab{
- const char *F;
- uint16_t angle;
- };
- const struct F_tab tab1_3[]={
- {"F1.8",0},
- {"F2",36},//4*9度
- {"F2.2",54},
- {"F2.5",72},
- {"F2.8",90},
- {"F3.2",108},
- {"F3.5",135},
- {"F4",153},
- {"F4.5",162},
- {"F5",180},
- {"F5.6",198},
- {"F6.3",216},
- {"F7.1",243},
- {"F8",270},
- {"F9",297},
- {"F10",324},
- {"F11",351},
- {"F13",378},
- {"F14",405},
- {"F16",423},
- };
- sizeof(tab1_3) 在MDK4下报错,MDK5下OK
复制代码
|
定义必须sizeof同.c文件才行
extern声明的.c文件sizeof报错
原因不清楚
MDK5也是一样
自然是定义了,只有定义在本文件才不会报错,
通过extern 方式引用到其他文件 数组内容可以访问 不过预编译sizeof()会报错
如果在同一个c文件 函数在变量定义后 能得到你想要的长度
如果在其它c文件 通过.h定义去取sizeof 是得不到长度的 一般是4 指针的长度