Стандарт C резервирует «asm» для использования пользователями в любых целях.Следовательно, GCC предоставляет нотацию __asm__
, чтобы избежать попадания в пространство имен пользователя (поскольку идентификаторы, начинающиеся с двойного подчеркивания, зарезервированы для реализации).
Нотация с двойным подчеркиванием является неловкой, поэтому GCC обеспечиваетинтерфейс pleasanter без двойных подчеркиваний.Но если вы включите стандартный режим компиляции (например, -std=c99
), опция asm
отключится.При написании с двойной нотацией подчеркивания он всегда доступен.
Итак, asm
удобнее для чтения, но __asm__
соответствует стандарту C.