Возможный дубликат:
Что делает основной возврат?
Например, следующий код компилируется без предупреждения:
#include <stdio.h>
int i = i + 1;
int main(int argc, char *argv[])
{
fprintf (stderr, "%d\n", i);
return 0;
}
Я думаю, что это незаконно в синтаксисе, потому что i
используется до его объявления, правильно ли это?
И, на мой взгляд, внешний вид int i = i + 1;
, несомненно, является ошибкой, почему компилятор не предупреждает об этом? Я использую gcc 4.5.1.