jianhong_wu 发表于 2016-3-19 15:56:40

指针的寻址范围跟指针的类型有关吗,指针变量占用多少个字节?已解答。

本帖最后由 jianhong_wu 于 2017-6-4 12:40 编辑

问:
指针的寻址范围跟指针的类型有关吗,指针变量占用多少个字节?

★坚鸿-深圳:
指针是一种特殊变量,它是由C编译器根据芯片硬件寻址范围而决定的,在一个相同的C编译器系统中,所有类型的指针所占用的字节数都是一样的,比如8位单片机的C51编译器系统中,unsigned char *,unsigned int *,unsigned long *都是一样占用3个字节。而32位单片机的指针往往都是4个字节,而某些64位的PC机,指针可能是8个字节。

hippo-深圳:
keilC51把指针其实也可以设计成2字节,这样就只能在64KB范围。定3字节原因是keilC51有bank技术,可以超过64KB寻址,一个bank就是64KB。。。 编译器有时也不会严格遵循ANSI-C,最明显的就是P0^1这种,把C标准^位异或都改了。



页: [1]
查看完整版本: 指针的寻址范围跟指针的类型有关吗,指针变量占用多少个字节?已解答。