.
Delphi: сообщения компилятора. Часть 4 (warning, value, function)
Автор megabax   
21.06.2011 г.
Массив

 Delphi: сообщения компилятора. Часть 4 (warning, value, function)

Expression expected. В этом месте программы должно стоять выражение.  

Expression too complicated. Выражение излишне сложно для компиляции.  

For loop control variable must be simple local variable. Параметр цикла должен быть простой локальной (описанной в этом же блоке) переменной.  

Illegal type in Read/Readln (Write/Writeln) statement. Элемент запрещенного типа в списке ввода/вывода.

Invalid function result type. Недопустимый тип результата функции

Missing parameter type. He указан тип формального параметра-значения или параметра процедурного типа.

Ordinal type required. Требуется порядковый тип (например, в индексе).

Slice standard function only allowed as open array argument. Функцию Slice можно использовать лишь как фактический параметр

Statement not allowed in interface part. Предложения в секции интерфейса программного модуля недопустимы.

Syntax error in real number. Синтаксическая ошибка в записи числа вещственного типа.

Unit name mismatch: <Имя>. Имя модуля ошибочно.

Рассмотрим так же некоторые диагностические сообщения компилятора, не ошибки, а предупреждения (warning). Хотя при выдаче подобных сообщений компиляция все же произойдет, игнорировать такие предупреждения все таки не стоит, так как подобные "сопли" очень часто становятся причиной других ошибок, которые не выявляются в ходе компиляции, и, которые потом довольно трудно "отглючивать". И так, вот эти сообщения:

Return value of function <Имя> might be undefined. В теле функции нет присваивания ее результата. Например, вы объявили функцию, а результат возвратить забыли. Это либо явная ошибка, либо вы сначала объявили подпрограмму как функцию, а потом передумали и сделали ее как процедуру, но поленились переписать function на procedure. В последнем случае не ошибка, но признак дурного тона в программировании. В будущем такая вредная привычка как раз и приводит к трудно исправляемым глюкам. Например, вы хотите написать функцию, которая возвращает удвоенный аргумент, если заданное число больше десяти либо сам аргумент в противном случае. Но когда вы писали эти строки, вам в аську постучалась сексапильная блондинка, вы забыли что писали, а потом продолжили, оставив функцию недописанной:

function MyFun(a:integer):integer;

begin

  if a>10 then

end;

Программа у вас скомпилируется, но будет выдано предупреждение*:

Delphi: сообщения компилятора. Часть 4 (warning, value, function)

 Variable <Имя> might not have been initialized. Указывает имя переменой, которой не задали значения. 

 For-Loop variable <Имя> may be undefined after loop. Попытка использования значения параметра For-цикла после завершения этого цикла.

Text after final "END.' ignored by compiler. Текст, идущий за конечной строкой модуля, игнорируется компилятором. 

 Variable <Имя> is declared but never used in <Имя блока>. Обращает внимание на переменную <Имя>, описанную, но не нашедшую применения. Например, вот так*:

Delphi: сообщения компилятора. Часть 4 (warning, value, function)

 Value assigned to <Имя> never used. Хотя бы одно значение переменной <Имя> никак не использовано. 

 


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями  программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation".


 


 

Последнее обновление ( 05.02.2013 г. )