讲习所的人:“不要信ANSI的,我们讲习所定的标准才是世界通用的。” 这种人咱拿他也没办法。
若在20年以前,所长说“理论上 (char)i = (char) j; 不成立。”绝对正确。那时的C语言无论是教材上还是标准文本上就是这么定的:——左值的类型cast只能用指针类型,而其他类型只能用于右值cast。 这都是老皇历啦!
再往前10年,连 i=j; 这样的左右值标准赋值表达都不允许,那时的左值只允许用指针类型值!这更是老老皇历啦!那时我可能还没出生呢。
所长真是老古董文物级宝贝了,教highgear这个讲习所门童拿IT历史博物馆的古老技术理论到今天2009年的21IC论坛上来说事!?
世界是发展的,C早就进化啦。
且看下面:
#define uchar unsigned char #define uint unsigned int #define ulong unsigned long
main( ) { ulong i; uint j; (uchar)i=(uchar)j; (uint)i=(uchar)j; i=(uint)j; }
7: main() 8: { 9: ulong i; 10: uint j; 11: 12: (uchar)i=(uchar)j; C:0x0003 AF0D MOV R7,0x0D C:0x0005 8F08 MOV 0x08,R7 13: (uint)i=(uchar)j; C:0x0007 750800 MOV 0x08,#0x00 C:0x000A 8F09 MOV 0x09,R7 14: i=(uint)j; 15: C:0x000C E4 CLR A C:0x000D 8F0B MOV 0x0B,R7 C:0x000F 850C0A MOV 0x0A,0x0C C:0x0012 F509 MOV 0x09,A C:0x0014 F508 MOV 0x08,A 16: } C:0x0016 22 RET
这就是当今新的C标准! 所长可以拿任何“现代”C编译器运行一下,证实一下,看看最新的C编译器理论是什么?! 别忘了前两年**C语言“结构不能拷贝”的事,那次就因C“理论”落伍而失意了一回。 这次要不要我像学长1952一样把书搬出来给你看?
讲习所的人一定要说“咱不看书,照样编写国际标准教材。”
那咱冷漠也没办法,也只能贻笑大方。
|