c中的psuedo全局变量



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

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

人们说_AX伪全局变量,这就是为什么它显示输出1000

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

这种情况经常出现吗?这完全是胡说八道。据推测,_AX是一些特定于编译器的符号,用于访问"ax"寄存器,该寄存器在x86上用于返回值。但是,没有理由相信寄存器中的值不应该在赋值和函数返回之间发生冲突。此程序正在调用未定义的行为。如果有人给你提供一份工作,希望你知道这些无效的做法,那就跑吧。快。他们没有能力。

相关内容

  • 没有找到相关文章