shuidiyu 发表于 2014-10-9 18:47:18

长整型实参传递的问题

我有一个函数原型为char read(ulong add);我在使用的时候是这样用的read(add_init+no*size)其中#define add_init0x9000#define size 0x1000   no 为从0~50;现在我只要地址超过0xf000,就会又从0x000开始读去数据,不知道到大家有没有遇到过类似的问题!

go2deathward 发表于 2014-10-9 19:22:50

no是什么数据类型?,或者你把no强转成ulong吧。定义的宏默认貌似是短整型。

go2deathward 发表于 2014-10-9 19:26:21

之前的,当no超过16的时候,ox1000*16,就会溢出了

shuidiyu 发表于 2014-10-9 19:30:08

go2deathward 发表于 2014-10-9 19:22
no是什么数据类型?,或者你把no强转成ulong吧。定义的宏默认貌似是短整型。 ...

no为uchar的类型,哦,试试吧!我下班前用了一个变量ulongdata;data=add_init+no*size;然后read(data);这样不知道是不是好用,感觉可能不好用的啊!那如果define size 0x001000这样可以使宏为长整型吗?

go2deathward 发表于 2014-10-9 20:06:11

按我说的,应该是没错的
页: [1]
查看完整版本: 长整型实参传递的问题