Qraizer
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Так что, GNUсные спецы в отпуске? pointer targets in passing arg 1 of `copystr' differ in signedness - смешение знаковых и беззнаковых данных; скорее всего некритично, однако while (--i < 0), например, чувствителен к подобному смешиванию. ISO C forbids assignment between function pointer and `void *' - солидарен с компилятором. Таким кастованием полностью уничтожается (или берётся из ниоткуда) информация о параметрах и возвращаемом типе. Компилятор будет вынужден доверять программисту, тогда как обычно наоборот - программист полагается на проверки, выполняемые компилятором. ISO C89 forbids mixed declarations and code и dereferencing type-punned pointer will break strict-aliasing rules - честно говоря, даже не понял, что за код сподвигнул компилятор на такие предупреждения... По первому варнингу, скорее всего, имеется ввиду, что, в отличие от C++, в plain-C объявления разрешается размещать только в начале функций до первой инструкции, компилируемой в исполняемый код, или же вне функций. Второй вообще не понял, к чему это. Количество предупреждений говорит о неряшливости автора. Конкретнее, чем здесь, я заочно вряд ли смогу сказать больше. |