Мой учитель языка C утверждает, что все переменные должны быть определены перед любой операцией. Я как-то могу вспомнить, что это очень старая функция C (не позднее 1990 года), но я не могу воспроизвести ее с помощью GCC 7.2.0.
Мой учитель утверждает следующее:
int main(){
int a; /* Valid */
a = 1; /* An operation */
int b; /* Invalid because an operation has already occurred */
return 0;
}
Я пробовал компилировать с
gcc test.c -std=c89 -Wall -Wextra -pedantic
но он не дает ни ошибки, ни даже предупреждения.
Как я могу проверить (или доказать ошибочность) это утверждение?
// comments
также недействительны в строгом c89. Я удивлен, если они тоже не будут отмечены gcc с включенными педантичными ошибками. clang определенно ловит их. - person WhozCraig   schedule 12.09.2017<Compilation Failed>
. - person iBug   schedule 12.09.2017