在VC中,栈空间未初始化的字符默认是-52,补码是0xCC,1个BYTE。两个就是0xCCCC. 0xCCCC在GBK编码中就是"烫"。
堆空间未初始化的字符默认是-51,两个-51在GBK编码中就是“屯”。
二进制文件中看到的全是乱码,道理和上面的一样。用二进制存储的,看到的是GBK的编码。
困扰我很久了,终于一狠心花了不少时间把这个搞得有点清楚了。
另外,在TurboC2.0中,不是这种情况。编译器不同吧。没去研究了。本质也一样。
堆空间未初始化的字符默认是-51,两个-51在GBK编码中就是“屯”。
二进制文件中看到的全是乱码,道理和上面的一样。用二进制存储的,看到的是GBK的编码。
困扰我很久了,终于一狠心花了不少时间把这个搞得有点清楚了。
另外,在TurboC2.0中,不是这种情况。编译器不同吧。没去研究了。本质也一样。