2

一个面试问题问得非常频繁。但是,我不清楚我在不同网站上找到的解释。因为,当我尝试执行此代码时,它会显示_AX未声明的错误。

main()
  {
   int i;
   i = abc();
   printf("%d",i);
  }
  abc()
  {
   _AX = 1000;
  } 

人们说_AX伪全局变量,这就是它显示输出1000的原因。

*注意: - 它显示错误_AX未声明,但是当我声明变量时,它显示一些垃圾值 *

4

1 回答 1

10

这个经常出现?这完全是胡说八道。大概_AX是一些特定于编译器的符号来访问“ax”寄存器,该寄存器在 x86 上用于返回值。然而,没有理由相信寄存器中的值不应该在赋值和函数返回之间被破坏。该程序正在调用未定义的行为。如果有人为您提供工作希望您知道这种无效的做法,请运行。快速地。他们没有能力。

于 2012-11-01T18:07:36.267 回答