C语言里,0x01FF 是啥类型的数?
RT。。。。十六进制就不用说了,俺是指C语言里的数据类型。 int 是的,肯定是 interger:
uint16_t * k =0x01FF;
提示俺:
warning: initialization makes pointer from integer without a cast
俺必须做强制转换:
uint16_t * k =(uint16_t) 0x01FF;
才能避免那个警告。
问题是,这个常数是哪种 int 呢?
即便俺这样写:
int * k =0x01FF;
还是有警告。
肯定是和编译器有关了。。可到底是哪种呢?? uint16_t * k =(uint16_t *) 0x01FF;
int * k =(int *)0x01FF;
试试。。。 我的理解:你定义的都是两个指针变量,K的值必须是地址呀!!0x01ff是啥东西?值?还是地址??
在引用的时候*k=0x01ff就对了、、但是在定义的时候你这样做,就不妥了吧。。应该是给地址。。
http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_645814TJOQ16.jpg
(原文件名:QQ截图20110604234455.jpg) 回复【4楼】myqiang1990小松鼠
-----------------------------------------------------------------------
我在声明一个指针,并且初始化。所以,0x01FF就是地址。
问题是必须强制转化。。 这么基础的问题,楼主应该先看看教程
页:
[1]