2013-09-14 4 views
-4

Когда я компилирую мой код, написанный на языке C Я получаю следующее предупреждение и возможность успешной компиляциинеявное объявление функции

предупреждение: неявная декларация функции

Что произойдет, если я игнорирую это предупреждение?

+1

Compile - на каком языке? C? – tbsalling

+0

Я предлагаю следовать учебнику для начинающих C. 1-я или 2-я главы – hek2mgl

+0

Скомпилировать вы имеете в виду как компиляцию, так и ссылку или просто компиляцию? Если функция не определена нигде, вы получите ошибку компоновщика. –

ответ

1

Что произойдет, если я проигнорирую это предупреждение?

Это зависит от ситуации. Если неявно объявленная функция не определена ни в одной из библиотек, на которые вы ссылаетесь, вы просто получите сообщение об ошибке.

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

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

Смежные вопросы