首页 > 解决方案 > 两种形式的内联汇编

问题描述

内联汇编有两种形式,一种是

asm{
    //...
}

另一个

asm(
    "..."//work in my clang compiler
);

和 __asm 等等,那么有什么区别呢?绝对不仅仅是花括号和方括号,我希望

标签: cassemblylanguage-lawyerinline-assembly

解决方案


C 语言不支持内联汇编程序,因此任何一种形式都是非标准的。每个编译器都倾向于以不同的方式执行此操作,因此语法会有所不同。

一些编译器使用双下划线__让所有非标准关键字通过,即使在 C 标准模式下编译也是如此。

与 C 不同,C++ 确实通过标准化以asm("instruction");.


推荐阅读