Булева функция в 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 bissextilen»,n1); }else{ printf(«the year %d is not bissextilen»,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

Источник: ledsshop.ru

Стиль жизни - Здоровье!