PDA

Просмотр полной версии : [Вопрос] warning 208: function with tag result used before definition, forcing reparse



Duck_Leo
18.05.2021, 23:54
Попробовал использовать Pawn compiler 3.10.10.
При компиляции выдало несколько warning 208: function with tag result used before definition, forcing reparse (Функция с тегом используется перед её определением)
В каждой такой ф-ии с тегом bool у меня прописано например так:
forward bool:IsSpeaksPhone(playerid);
bool:IsSpeaksPhone(playerid)
{
return splacts_phone_action{playerid};
}

Хотя казалось бы forward перед ф-ей объявлен, а варнинг остаётся. Я переместил forward выше (до всех возможных вызовов этой ф-ии в моде) - варнинг исчез, но всё равно не хотелось бы так выносить поверх мода forward'ы.
Мне интересна суть этого предупреждения. Ведь если такой варнинг создан, то были на то причины. Каковы возможные последствия, если не выполнить требование компилятора?

DeimoS
19.05.2021, 06:32
Если я правильно помню, то потому что изначально компилятор не может знать тег функции? А раз он не может его знать, то и проверить все вызовы функции на то, нет ли нарушения тегов, он не может. Соответственно, чтоб сделать проверку, ему приходится делать второй заход при компиляции, а значит увеличивает время компиляции - о чём и сообщает это предупреждение.

Ну а касаемо того, что ты не хочешь выносить forward - это лишь сигнализирует о том, что ты выбрал крайне неудачный вариант структурирования своего кода :)