huayuliang 发表于 2011-6-4 22:39:21

C语言里,0x01FF 是啥类型的数?

RT。。。。
十六进制就不用说了,俺是指C语言里的数据类型。

qumei 发表于 2011-6-4 22:49:52

int

huayuliang 发表于 2011-6-4 23:02:11

是的,肯定是 interger:

uint16_t * k =0x01FF;
提示俺:
warning: initialization makes pointer from integer without a cast

俺必须做强制转换:
uint16_t * k =(uint16_t) 0x01FF;
才能避免那个警告。

问题是,这个常数是哪种 int 呢?
即便俺这样写:
int * k =0x01FF;
还是有警告。

肯定是和编译器有关了。。可到底是哪种呢??

myqiang1990 发表于 2011-6-4 23:33:25

uint16_t * k =(uint16_t *) 0x01FF;
int * k =(int *)0x01FF;
试试。。。

myqiang1990 发表于 2011-6-4 23:39:55

我的理解:你定义的都是两个指针变量,K的值必须是地址呀!!0x01ff是啥东西?值?还是地址??
在引用的时候*k=0x01ff就对了、、但是在定义的时候你这样做,就不妥了吧。。应该是给地址。。
http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_645814TJOQ16.jpg
(原文件名:QQ截图20110604234455.jpg)

huayuliang 发表于 2011-6-4 23:48:30

回复【4楼】myqiang1990小松鼠
-----------------------------------------------------------------------

我在声明一个指针,并且初始化。所以,0x01FF就是地址。
问题是必须强制转化。。

heysung 发表于 2011-7-22 12:56:04

这么基础的问题,楼主应该先看看教程
页: [1]
查看完整版本: C语言里,0x01FF 是啥类型的数?