Re: [请益] KeilC指定function位址

楼主: mosquito520 ( )   2014-02-19 18:12:15
※ 引述《MaxHaru (懂得放手..才是王道)》之铭言:
: 请教各位,
: 我知道Keil C可以在环境中设定function要放在哪个位址.
: 现在想用#if / #endif来定义function存不存在,
: 结果发现, 当环境设定中设定了function要放在哪位址址.
: 但#if定义function不存在时, Keil C Compile会有问题.
: 所以想来这里请教, 是否有什么方法可以直接在source code直接定义function的位址.
: EX:
: #if exist
: ...定义function的位址...
: ...function定义...
: #endif
: 谢谢.
在Keil C当中直接指定function的位址,
其实这个动作是在Linker阶段执行的,
所以如果Compiler因为macro把function忽略掉,自然就没有symbol给Linker去安排
如果只是要取得function的位址,可以考虑透过function pointer取得function的位址
这样可以在Compiler阶段用macro整个disable掉
缺点是,没办法将function固定在特定位址
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2014-02-28 06:22:00
当然可以

Links booklink

Contact Us: admin [ a t ] ucptt.com