代码未显示退货

时间:2013-05-10 16:18:06

标签: c function return-value

我正在尝试为函数maximum写一个函数定义,它返回三个整数中最大的一个。但它并没有回归最大的。

这是我的代码:

int maximum( int x, int y, int z ) {
    int max = x;
    if ( y > max )
        max = y;

    if ( z > max )
        max = z;

    return max;
}

int main() {
    maximum(3, 2, 1);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您的maximum(3, 2, 1)调用结果将被忽略(因为您未使用该结果)。优化编译器可以自由地忽略该结果,甚至可以避免调用maximum

BTW我发现max3对于这样的函数来说是一个更好的名称。

至少,你应该打印这样一个函数调用的结果。所以添加

   printf("max is %d\n", maximum(3, 2, 1));
return 0; main之前

(当然,在源代码的开头需要#include <stdio.h>)。

提示新手:始终使用换行符printf结束\n格式字符串,或者调用fflush(NULL),否则您会收到令人不快的意外,因为{{1缓冲了!

你真的应该阅读一些关于编程的更多资料(或者关于用C编程的资料)。您应该在编译器中启用警告消息。您应该学习如何使用调试器。如果您使用的是Linux,请使用stdout进行编译,并了解如何使用gcc -Wall -g调试器。因此,如果您的源文件是gdb,则可以使用

进行编译
max3homework.c

命令,您可以通过运行gcc -Wall -g max3homework.c -o max3hw 对其进行测试,然后运行./max3hw进行调试,然后键入适当的命令gdb max3hw

相关问题