我正在努力学习如何调用函数并使用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;
}
答案 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中。