当前位置: 首页 > Linux

信息的表示和处理-指针、字符串和代码的表示

时间:2023-04-06 05:43:29 Linux

指针的表示我们以上图为例,研究一下p的值(即B的地址)。首先,我们必须认识到p的值不是一个固定值。价值。由于不同编译器和不同环境的影响,地址会发生变化。因此我们只考虑p的字节顺序。因为Sun系统是big-endian,地址是0X2CFBFFEF;而IA32和X86是little-endian,所以地址为0XAC28F5EE,0X3C1BFE82FD7F0000可以找到字符串的表示,而且字符串在任何平台上的字节顺序都是一样的,因为每个元素只占一个字节。综上所述,可以发现,如果一个元素只占用一个字节,则其字节顺序不受影响;如果一个元素占用多个字节,则其字节顺序受big-endian和little-endian的影响。代码代表不同类型的机器和不同的操作系统,使用的指令和编码方式也不同,互不兼容。因此,二进制代码的可移植性非常低,难以在不同的操作系统和机器类型组合之间移植。原因:不同的机器类型--->不同的处理器架构,不同的操作系统---->不同的约定,不同的API接口代码。不要在二进制层面做太多的要求,而是在代码层面提高程序的跨平台能力。关注公众号,让我们一起努力