неявное объявление функции "getChar" в C - PullRequest
0 голосов
/ 02 февраля 2012

У некоторых возникает эта ошибка, когда я пытаюсь скомпилировать программу на C.

myfunctions.c:27:2: warning: implicit declaration of function ‘getChar’ [-Wimplicit-function-declaration]

Вот строка 27:

while(myChar = getChar() && myChar != '')

Я вызываю это в шапке:

#include <stdio.h>
#include <unistd.h>

Ответы [ 2 ]

10 голосов
/ 02 февраля 2012

Это пишется getchar, а не getChar. C чувствителен к регистру, и почти все имена стандартных функций C строчные.

Что касается того, почему он «неявно объявляется», когда он не существует ... в более старых версиях C, если имя функции неизвестно компилятору, предполагается, что это функция, которая возвращает int , Это почти как если бы вы сказали int getChar();. Я слышал, что C99 не позволяет этого, но большинство компиляторов все равно не придерживаются этого, если вы не скажете им.

0 голосов
/ 12 ноября 2015

Не знаю почему, но компилятор GCC (платформа win) знает getch(). Но если вы включите -pedantic компиляцию, то появится это предупреждение.

Решение: используйте getchar() и все должно работать нормально.

...