Четвертый BORLAND С++ и его окружение

       

Общие сообщения об ошибках и предупреждения компилятора


В данном разделе описываются некоторые наиболее общие ошибки

и предупреждения, обнаруживаемые компилятором.

Call to function имя_функции with no prototype


(Вызов функции без прототипа)

Данное предупреждение означает, что функция используется перед ее прототипизацией или описанием. Это предупреждение может

выводиться также, когда функция, не воспринимающая аргументов, не

описана прототипом с void.

Conversion may lose signifigant digits


(Преобразование может привести к потере значимых цифр)

Это предупреждение является результатом преобразования компилятором значения, например, LONG в int. Оно сообщает, что вы

можете потерять информацию. Если вы уверены, что таких проблем не

возникает, то с помощью соответствующего явного приведения типа к

меньшему размеру это предупреждение можно подавить.



Function should return a value


(Функция должна возвращать значение)

Функция, описанная как возвращающая значение, значения не

возвращает. В старом коде Си, отличном от стандарта ANSI, такое

предупреждение является общим для функций, не возвращающих значения и не имеющих типа возврата:

foo(i)

int i;

{

...

}

Описанные таким образом функции интерпретируются компилятором, как возвращающие int. Если функция ничего не возвращает, ее

следует описать так:

void foo(int i)

{

...

}

Lvalue required


(Требуется именующее значение)

Type mismatch in parameter


(Несовпадение типа в параметре)

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

STRICT описателей, а также LRESULT, WPARAM и LPARAM внутренним

образом описываются как указатели, поэтому попытка передачи в качестве указателя int, WORD или LONG дает в результате подобные

ошибки.

Эти ошибки следует исправлять путем описания отличных от

указателя значения, используемых при передаче параметров или

присваивании. В случае специальных констант, таких как (HWND)1,

вам следует пользоваться новыми макрокомандами (такими как

HWND_BOTTOM). Ошибки несоответствия типов следует подавлять в



Содержание раздела