hjf527 发表于 2012-2-13 19:17:47

stm8 查表的困惑,请高手解析

#include "stm8s.h"
const unsigned char
date0[]={
     0x11,
     0x30,
     0x04,
     0x00,
     0x38,
     0x03,
     0xE9,
     0xD8
};
main()
{
  unsigned char i;
   i=sizeof(date0);
 }
问题1:编译提示错误 Error: incomplete type is not allowed.难道sizeof()不支持ROM数组计算
问题2:如何计算数组date0[]的大小?

hjf527 发表于 2012-2-13 19:56:46

RE:stm8 查表的困惑,请高手解析

沙发,自己顶一下

发表于 2012-2-14 09:43:14

RE:stm8 查表的困惑,请高手解析

stm8支持C语言标准库,但是在使用的时候也需要调用标准库函数,比如 math.h,你改成下面的方式试一下。还有,sizeof取的是占用的字节数,如果你定义的是int型的,结果会是你定义数组的2倍。
sizeof((unsigned char *)date0);

hjf527 发表于 2012-2-14 11:12:26

RE:stm8 查表的困惑,请高手解析

试了。结果不对啊
sizeof((unsigned char *)date0)得到的值=0x02;

hjf527 发表于 2012-2-14 11:15:45

RE:stm8 查表的困惑,请高手解析

安 :
插入了两个库
#include
#include
结果还是不对
iar stm8的 sizeof的运算符 原型有么?谢谢

发表于 2012-2-14 14:09:44

RE:stm8 查表的困惑,请高手解析

#include 这里调用的sizeo是标准库函数,具体的,可以搜索c语言 sizeo。sizeo和芯片没有关系。

hjf527 发表于 2012-2-14 18:39:34

RE:stm8 查表的困惑,请高手解析

问题解决了,谢谢!
不是标准库的原因。数组我把它放在data.h文件中。但是没有包含进main.c文件(在其他.C文件中已包含data.h)。
不过IAR编译没有提示错误和警告...再次感谢:安
页: [1]
查看完整版本: stm8 查表的困惑,请高手解析