cygwin gcc不正确的输出与优化

时间:2012-08-08 05:18:32

标签: gcc cygwin

我正在使用cygwin gcc 4.5.3版来编译以下代码。

 /* recursion.c */
int factorial_aux(int n, int t) {
    if (n <= 1) {
        return t;
    } else {
        return factorial_aux(n-1, n*t);
    }
}

int factorial(int n) {
    factorial_aux(n, 1);
}

int main() {
    int result = factorial(4);
    printf("%d\n", result);
}

使用以下代码运行程序编译:{{1​​}}打印24,但使用gcc recursion.c -o recursion.exe编译的打印为0。

有人能告诉我为什么会有不同的结果吗?任何可能的方法来解决它?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的factorial功能缺少某些功能。它没有return任何东西。