Булева функция в C

то, что я пытаюсь сделать, это посмотреть, является ли год биссекстильным или нет, но когда я использую логическую функцию, это дает мне это странное сообщение.

вот мой код:

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

main(){
    int n1;
    printf("what is the year?\n");
    scanf("%d",&n1);

    if(itIS(n1)){
        printf("the year %d is bissextile\n",n1);
    }else{
        printf("the year %d is not bissextile\n",n1);
    }
}

bool itIS(int n1){
    bool is = false;
    if((n1/400)== 0){
        is = true;
    }
    return is;
}

и вот что мне представляется:

  exe1.c:144:6: error: conflicting types for ‘itIS’ bool itIS(int n1){
  ^
  exe1.c:134:6: note: previous implicit declaration of ‘itIS’ was here if(itIS(n1)==true){
  ^

Я не понимаю, в чем проблема. Хотя, если я делаю это без логической функции, все работает отлично.

Редактировать: Итак, я уже знаю, в чем проблема, благодаря @Bill Lynch. Проблема в том, что мне нужно написать логическую функцию перед основной функцией, чтобы компилятор увидел функцию, вот и все.

основная функция записывается как «int main(void)» или «int main(int argc, char **argv). включить все предупреждения при компиляции, тогда ваш компилятор сообщил бы вам об этой проблеме (и об отсутствующем возвращаемом значении; инструкция в конце main()   —  person bluewolfxD    schedule 20.03.2015

код отсутствует, перед main() прототип функции: ‘bool itIS(int);’   —  person bluewolfxD    schedule 20.03.2015

@user3629249 user3629249, даже при добавлении «int main (void)» выдается то же предупреждение: S   —  person bluewolfxD    schedule 20.03.2015

См. также:  Что такое действительный указатель в gcc linux x86-64 C ++?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. bluewolfxD

    Вы не объявили функцию перед ее использованием. Добавьте это перед main:

     bool itIS(int n1);
    

    Кроме того, это int main(void), а не main()

    он работает просто отлично, по умолчанию уже так делает. а разве так плохо писать?! person bluewolfxD; 20.03.2015

    @bluewolfxD Если вы имеете в виду int main, да, вы должны написать его с типом возврата int. person bluewolfxD; 20.03.2015

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: