|
Объявляю массив указателей на ф-ии:
code void (*Func[])(void)={&F1,&F2,&F3}
В main происходит вызов: Func[temp]();
Описание ф-ий примерно таково:
void F1(void)
{byte i;
.....
Function(4);
...
}
При компиляции такого варианта выдает
***WARNING L13: RECURSIVE CALL TO SEGMENT
SEGMENT: ?CO?MAIN
CALLER: ?PR?_FUNCTION?MAIN
***WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_FUNCTION?MAIN
CALLER1: ?PR?UART?MAIN
CALLER2: ?C_C51STARTUP
если заменить Function(4)на _nop_(), то остается только:
***WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_FUNCTION?MAIN
CALLER1: ?PR?UART?MAIN
CALLER2: ?C_C51STARTUP
а если убрать еще локальную переменную i, линкует без предупреждений
Чет не пойму , что ему не нравится, подскажите, плиз.
E-mail: info@telesys.ru