我正在尝试使用 C 程序。
add (int a , int b)
{ // Do nothing
}
void main()
{
printf("%x\n", add(1,1));
printf("%x\n", add(1,1));
}
GCC 给我的输出如下: 输出:1 2
有人可以解释为什么要打印这些值。尽管我认为它是垃圾,但 1 和 2 的顺序让我感到困惑。
最佳答案
这是未定义的行为。尝试用不同的编译器运行你的程序,你会得到不同的值。
尝试使用基于某些输入使用不同堆栈变量的函数。随着变量堆栈的变化,您将获得不同的值。
关于c - 在不使用 return 语句的情况下打印函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27856350/