如何调用简单的Bool函数并打印

时间:2015-07-29 09:31:03

标签: c function boolean

我正在努力学习如何调用函数并使用bool。尝试通过调用bool函数运行一个小测试,如果输入数小于50,则该函数为true。但是我收到一个错误,说该函数缺少参数列表,无论是什么。关于我做错什么的任何建议都非常感谢。谢谢!

C4550:表达式求值为缺少参数列表的函数。

错误指向我在main中调用bool函数的位置。

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>

bool ValidInput(int number1);
int number1;

int main(void)
{
    printf("Enter number: ");
    scanf("%d", &number1);

    if (ValidInput == true)
        printf("VALID INPUT\n");
}

bool ValidInput(int number1)
{
    if (number1 < 50)
        return true;

    return false;
}

3 个答案:

答案 0 :(得分:1)

在此if语句中

if (ValidInput == true)
{
    printf("VALID INPUT");
}

您正在将函数指针ValidInput与true进行比较。

但是你的意图是将函数调用的结果与true进行比较。所以写

if (ValidInput( number1 ) == true)
              ^^^^^^^^^^^
{
    printf("VALID INPUT");
}

编写

会更安全
if ( ValidInput( number1 ) )

而不是

if (ValidInput( number1 ) == true)

此外,函数本身可以更简单地编写

bool ValidInput(int number1)
{
    return number1 < 50;
}

考虑到没有必要像全局变量一样声明变量number1。函数main应该用参数列表void声明。你应该写

int main( void )
{
    int number1;
    //...

答案 1 :(得分:0)

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>

bool ValidInput;
int number1;

int main()
{
printf("Enter number:");
scanf_s("%d", &number1);

if (ValidInput(number1) == true)
{
    printf("VALID INPUT");
}
}

bool ValidInput(int number1)
{
    if (number1 < 50)
    {
    return true;
    }

    return false;
}

答案 2 :(得分:-1)

在if()之后你错过了添加大括号...函数不能嵌套在C中。