这是由C99标准定义的

  • 本文关键字:定义 标准 C99
  • 更新时间 :
  • 英文 :


我通过定义main使链接器高兴,即使在我的程序中没有main函数。这在C99标准下有效吗?

void foo()
{
    __asm__ (".globl mainnn"
        "main:n"
        "txorl %eax, %eaxn"
        "tret");
}
<<p> 生活例子/strong>

不,C标准没有定义任何内联程序集的行为。

实现可以提供__asm__关键字,但只能作为扩展。特别是,C99标准将asm块列在信息(非规范)节J.5.10 asm关键字:

asm关键字可用于直接插入汇编语言转换器输出(6.8)。最常见的实现是通过a格式的语句:

asm ( character-string-literal );

更精确地说,你的程序不符合严格的。出自§4/p5 一致性(强调我的):

严格符合的程序只能使用2)

在C语言中没有__asm__关键字,所以使用C语言中没有定义的关键字意味着你的程序没有严格遵守。

最新更新