长整型实参传递的问题

2020-01-22 12:06发布

我有一个函数原型为char read(ulong add);我在使用的时候是这样用的read(add_init+no*size)其中#define add_init  0x9000  #define size 0x1000   no 为从0~50;现在我只要地址超过0xf000,就会又从0x000开始读去数据,不知道到大家有没有遇到过类似的问题!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
go2deathward
1楼-- · 2020-01-22 13:03
no是什么数据类型?,或者你把no强转成ulong吧。定义的宏默认貌似是短整型。
go2deathward
2楼-- · 2020-01-22 16:27
之前的,当no超过16的时候,ox1000*16,就会溢出了
shuidiyu
3楼-- · 2020-01-22 22:17
go2deathward 发表于 2014-10-9 19:22
no是什么数据类型?,或者你把no强转成ulong吧。定义的宏默认貌似是短整型。 ...

no为uchar的类型,哦,试试吧!我下班前用了一个变量ulong  data;data=add_init+no*size;然后read(data);这样不知道是不是好用,感觉可能不好用的啊!那如果define size 0x001000这样可以使宏为长整型吗?
go2deathward
4楼-- · 2020-01-23 00:08
按我说的,应该是没错的

一周热门 更多>