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



我正在学习如何调用函数和使用bool。尝试通过调用bool函数来运行一个小测试,如果输入数字小于50,该bool函数为真。然而,我得到一个错误说,函数是缺少一个参数列表,无论那是什么。任何建议,我做错了什么是非常感谢。谢谢!

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 INPUTn");
}
bool ValidInput(int number1)
{
    if (number1 < 50)
        return true;
    return false;
}

在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;
    //...
#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;
}

您错过了在if()之后添加大括号…c语言中不能嵌套函数

最新更新