asm volatile(...);
__asm__ __volatile__(...);
Run Code Online (Sandbox Code Playgroud)
我看到两者都被使用了; 为什么创建一些重复的东西
C 标准保留“asm”供用户出于任何目的使用。因此,GCC 提供了这种__asm__表示法来避免进入用户的名称空间(因为以双下划线开头的标识符是为实现而保留的)。
双下划线的表示法很笨拙,因此 GCC 提供了没有双下划线的更令人愉快的界面。但如果您打开符合标准的编译模式(例如-std=c99),则该asm选项将被关闭。通过使用双下划线符号书写,它始终可用。
因此,asm读起来更愉快,但__asm__符合 C 标准。
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |