Разница между фатальной ошибкой и нефатальной ошибкой

В чем заключается основное различие между фатальными и нефатальными ошибками, возникающими в среде IDE при попытке компилировать код?

В обоих случаях компилятор показывает сообщение об ошибке, и программа не компилируется. Являются ли фатальные ошибки неопределенными ошибками компилятора в компиляторе или компоновщике?

2

Решение

IDE не является компилятором. Обычно запускается другая программа (например, НКУ…) в командной строке для компиляции. Ваша IDE — просто прославленный редактор (а в Linux emacs редактор часто лучше IDE).

Большинство компиляторов не выдают фатальных ошибок, за исключением ошибок компилятора, нехватки ресурсов во время компиляции или когда исходные данные не могут быть скомпилированы далее: подумайте о #include-на несуществующий заголовочный файл.

Кстати, иногда компилятор выдает столько ошибок (например, пытается скомпилировать текст литературы на английском или французском языке, замаскированный под C-файл), что дальнейшая компиляция имеет меньшее значение.

3

Другие решения

Разница обычно основана на единице компиляции .cpp файл) хотя иногда и на весь процесс сборки.

Основное отличие состоит в том, что фатальная ошибка приведет к отказу от компиляции. Так, например, если вы получите фатальную ошибку, включив заголовок, который не существует, он не скомпилирует модуль компиляции.

Если вы получаете обычную ошибку, например, используйте неопределенный символ или пропустите закрывающую скобку, он попытается скомпилировать оставшуюся часть файла для вас. Это может привести к дальнейшим ошибкам, которые вы можете исправить за один раз, прежде чем пытаться перекомпилировать. Конечно, некоторые из них могут быть вызваны предыдущим.

Как такового «стандарта» не существует, отсутствующий заголовок может считаться «фатальным», поскольку весьма вероятно, что без заголовка в дальнейшем будут загружаться неопределенные типы и т. Д., Поэтому считается, что «не стоит» сообщать о них. Другой компилятор может решить, что ошибка не является фатальной, и в любом случае просто сообщить о них.

3

По вопросам рекламы [email protected]