在RT-Thread中:
components.c 中定义的这段代码:
//components.c 中定义
/* re-define main function */
int $Sub$$main(void)
{
rt_hw_interrupt_disable();
rtthread_startup();
return 0;
}
- Sub main(void) 是在主程序main前插入一段新代码,这段代码可以用来初始化系统。
- MDK中Super 和Sub 的含义:
这是MDK的扩展功能,如果需要在原有的函数前面添加一些代码,但又不能修改原函数,使用Sub $$ 和 Super )便可以在原函数前面插入一个例程来办到。
- 例如
extern void $Super$$test(void);
//自定义代码
void test_1()
{
printf("test_1 fun\n");
}
//原函数
void test()
{
printf("test fun\n");
}
void $Sub$$test(void)
{
test_1();
$Super$$test();
}
使用$Super $ $ test()来替代原函数fun(),然后在$Sub $$ test()函数中调用它,便可以在函数前后添加自定义代码了,这样便能够达到在完全对原函数不做修改的情况下,在前后添加自己的代码。