我正在学习如何调用函数和使用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语言中不能嵌套函数