2015-07-29 3 views
0

Я пытаюсь научиться вызывать функции и работать с bools. Пробовал выполнить небольшой тест, вызвав функцию bool, которая истинна, если номер входа меньше 50. Однако я получаю сообщение об ошибке, говоря, что функции не хватает списка аргументов, что бы это ни было. Любые советы относительно того, что я делаю неправильно, очень ценятся. Спасибо!Как вызвать Простую функцию Bool и печать

C4550: выражение выражает функцию, в которой отсутствует список аргументов.

ошибка указывает на то, где я вызываю функцию 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; 
} 
+1

Читали ли вы какой-либо код C, написанный кем-то другим, когда-либо? – EOF

+0

Пожалуйста, сообщите точную ошибку компилятора. Кроме того, где-то отсутствует фигурная скобка. – Quentin

+0

Вы вызываете функции с помощью '()'. – melpomene

ответ

-1

Вы пропустили добавления фигурных скобок после, если() ... Функции не могут быть вложены в С.

1

В этом случае оператор

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

вы сравниваете указатель функции ValidInput с правдой.

Но вы намерены сравнить результат вызова функции с истинным. Так что пишите

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

И это было бы более безопасным просто написать

if (ValidInput(number1)) 

вместо

if (ValidInput(number1) == true) 

Также сама функция может быть записана проще

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

Take учитывая, что существует n o нужно объявить переменную number1 как глобальную переменную. И функция main должна быть объявлена ​​с помощью списка параметров void. Вы должны написать

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

ooooooh, мне очень жаль просить такой простой вопрос. я идиот. Спасибо большое. – JJ1

+0

@ JJ1 Нет вообще. :) –

+0

Нет идиотских вопросов, но тот, который не сформулирован страхом. –

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; 
} 
Смежные вопросы