比如我编了一个32位程序。这个32位程序要判断出来所在的系统是32位还是64位,然后分别干一些事情

解决方案 »

  1.   

    查看系统位数的shell命令:
    1.getconf LONG_BIT
    2.uname -a
    3.arch
    4. file filename
    把输出做一个判断就行了吧。
      

  2.   

    首先你的电脑的字必须能处理8字节,也就是64位的硬件寄存器64位,能寻址2*64方。然后向下兼容,你64位操作系统,可以编写,32位应用程序。一个是编译器给一个伪指令。告诉CPU这是32位应用程序。CPU便会用32位处理模式,比如一些32位的一些指令,执行这些代码。
      

  3.   

    兼容性带来了好处,也带来了坏处,好处是CPU很强大,可以同时支持16位指令和32位指令,运行新老程序畅通无阻。但坏处就是CPU也不知道您想生成16位,还是32位机器码,,需要明确告诉编译器一些信息。为此,编译器提供了伪指令bits,用它来向编译器传达:我下面的指令都要编译成xx位的,bits的指令格式是[bits 16]或[bits 32]。