int i, j; i=0x1234; j=0x5678; (char)i = (char) j;
最后i是多少呢?
以下纯引用,不予评论 ************************************************************************************* 冷漠 发表于 2009-4-18 11:13 侃单片机 ←返回版面
33楼: 请教highgear大师:
刘前辈:(char)i=TH0; //有什么理论可以?谢谢大家。 *****************************************************************
前辈问的是有什么“理论”可以,不是要你随意叙述“相当于”。
highgear: (char)i=TH0; 相当于: *(char*)(&i)=TH0;
没错!叙述十分准确。可是这个“相当于”又是根据什么理论?是所有C编译器依据的规则吗?
就算是C51,根据highgear“大师”的说法:无法解释下面:
int i,j; (char)i=(char)j;
只有把理论搞清楚,才可能使大家应用自如。而理论还包含文字的叙述。否则,岂不是说:
根据:(char)i 相当于*(char*)(&i) ,所以下面也正确?
(char)i=(char)j; 上式“相当于”: *(char*)(&i)=*(char*)(&j); //????????
回去再请教一下所长,多给咱菜鸟讲清楚一点。 冷漠 发表于 2009-4-18 12:27 侃单片机 ←返回版面
36楼: highgear总是喜欢创新添加编写国际教材的新内容。
除非他自己做编译器,“世界上流行的编译器都做错了,水平太低了,下面2个式子绝对应该是等同的,”谁不同谁错!
(char)i=(char)j; *(char*)(&i)=*(char*)(&j);
17: main() 18: { 19: 20: int i,j; 21: (char)i=(char)j; C:0x000F 850B08 MOV 0x08,0x0B 22: *(char*)(&i)=*(char*)(&j); 23: C:0x0012 850A08 MOV 0x08,0x0A 24: } C:0x0015 22 RET C:0x0016 00 NOP
highgear: 瞎扯淡,冷漠这叫什么编译器..... 瞎扯淡,OS实际上就是裸奔.......
讲习所的人总是知道一点,就无限发挥, “天才”一般都是这样性格。 “咱不看书,照样创新。” 这个“相当于”,又是讲习所的创新?
明天告诉highgear,编译器理论是怎么讲的。讲习所今天要赶快讨论呀,否则,连输3个1,000¥,可真是有点说不过去了。
今后还怎么在21IC混? 冷漠 发表于 2009-4-20 08:52 侃单片机 ←返回版面
37楼: 出差3天,highgear也没拿出个“理论”解释?
这可如何做“领军型人才”? 自己不知道可以请教所长啊。
32楼不过是把圈圈、xwj的精彩结论有改头换面复述了一遍,把别人的东西写进自己的**,再进一步请教就没声了。
让所长给你讲讲一个变量有几个特征?编译器是如何表述/表示、表达这几个特征的。
如若连最基本的概念都弄不清,还讨论什么OS? **************************************************************************** 相关链接:http://www.21icbbs.com/club/bbs/list.asp?Page=2&boardid=11&t=3303925&p=2&tp=%C7%EB%BD%CC%C8%A6%C8%A6%A1%A2xwj%B4%F3%CF%C0 |