extern void Volume_Up_Marktask_IR(void); extern void Volume_Down_Aiwa(void); extern void Volume_Down_Marktask_IR(void); extern void Page_Down_Marktask_IR(void); ..\MAINS.C(476): warning C206: 'Page_Down_MarkTask_IR': missing function-prototype ..\MAINS.C(486): warning C206: 'Volume_Up_MarkTask_IR': missing function-prototype ..\MAINS.C(497): warning C206: 'Volume_Down_MarkTask_IR': missing function-prototype Could be just a typo in your post here, but the capitalisation in your extern declarations doesn't match the names shown in the warnings... But IDE uvision2 build succesfully project dispite of existing wrong functions calls.
But IDE uvision2 build succesfully project dispite of existing wrong functions calls.
"Wrong question. You had better fix your source code to be internally consistent" Absolutely! At the moment you are relying far too much on luck: 1. Your are using illegal identifiers in your include-guards - it is only a matter of luck that they haven't clashed with some internal, undocumented compiler identifiers; 2. You have used the wrong identifiers for your functions calls - it only works by luck because you seem to have case-insensitive linking (and that by accident rather than design). Your lucky spell can only last so long - even a cat only has nine lives... ;-)