Почему этот код выдает ошибку:литья с #if в C
#include <stdio.h>
#define Rep (int)6
int main(){
#if Rep==6
printf("T");
#else
printf("F");
#endif
return 0;
}
- Почему отказаться от литья?
- Является ли это «препроцессорной ошибкой» или «ошибкой компилятора»?
Вы можете сообщить об ошибке? – nielsbot
Ошибка, которую вы, вероятно, видите, связана с тем, что препроцессор не понимает ни имени типа 'int', ни оператора трансляции. Ошибки или предупреждения, которые вы не видите или просто игнорируете, связаны с тем, что (a) вам не хватает обязательного '#include', (b) 'void main()' должен быть 'int main (void) 'и (c) вывод должен быть завершен символом новой строки:' printf ("T \ n"); '. Компиляторы не обязаны диагностировать все эти проблемы, но вы определенно должны их исправить. –
@nielsbot Ошибка от Eclipse IDE: «Отсутствующий двоичный оператор перед токеном« 6 »« –