2位版主和冷漠都拿出了编译结果来讲解,所以看得懂。C是不断改进的,我用Franklin 、turbo C 都验证过了。92年以前的C当然不行。99年以后的都可以,最新版C教材上把这类改进都写进去了。惭愧这两年不怎么看新教材。吃老本看来要落后了,谢谢各位年轻人。
C本来就是给编程员最大自由度的。越来越放宽限制。 以下C编译器结果一清二楚,而且符合人类逻辑思维,“它就是应该这样编译”,如果认为错,那才是把人弄得僵化,那就不是C的风格了:
7: main() 8: { 9: uint i; 10: (uchar)i=(uchar)i; 11: C:0x000F 850908 MOV 0x08,0x09 12: } C:0x0012 22 RET C:0x0013 00 NOP
再次谢谢几位年轻人。
|