gpt4 book ai didi

c - 为什么 C 中没有内置的 swap 函数,而 Assembly 中有 xchg?

转载 作者:太空狗 更新时间:2023-10-29 15:11:30 32 4
gpt4 key购买 nike

最近我接触到了汇编语言。 x86 程序集有 an xchg instruction交换两个寄存器的内容。

由于每个 C 代码都首先转换为汇编代码,因此如果像头文件 stdio.h 中那样在 C 中内置一个交换函数就更好了。然后,每当编译器检测到交换函数时,它就可以在汇编文件中添加 xchg 指令。

那么为什么这个swap函数没有用C实现呢?

最佳答案

C 是一种跨平台语言。组装是特定于体系结构的。并非每个架构都有这样的指令。而且,C作为一种高级语言,并不一定要对应机器级的指令集和特性,它的目的是在“人类”语言和机器语言之间架起一座桥梁,不要模仿它。也就是说,如果足够智能,针对此特定架构的 C 编译器可能具有此交换指令的扩展或优化交换代码以使用此指令。

关于c - 为什么 C 中没有内置的 swap 函数,而 Assembly 中有 xchg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512327/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com