地址无关代码 在计算机领域中地址无关代码 英文 positionindependent code缩写为PIC又称地址无关可执行文件 英文 positionindependent executable缩写为PIE 是指可在主存储器中任意位置正确地运行而不受其绝对地址影响的一种机器码PIC广泛使用于共享库使得同一个库中的代码能够被加载到不同进程的地址空间中PIC还用于缺少内存管理单元的计算机系统中 使得操作系统能够在单一的地址空间中将不同的运行程序隔离开来 地址无关代码能够在不做修改的情况下被复制到内存中的任意位置这一点不同于重定位英语Relocation computing代码因为重定位代码需要经过链接器或加载器的特殊处理才能确定合适的运行时内存地址 地址无关代码需要在源代码级别遵循一套特定的语义并且需要编译器的支持那些引用了绝对内存地址的指令比如绝对跳转指令必须被替换为PC相对寻址指令这些间接处理过程可能导致PIC的运行效率下降但是目前大多数处理器对PIC都有很好的支持使得这效率上的这一点点下降基本可以忽略