硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2246|回复: 4
收起左侧

[以太网] 遇到个稍麻烦点的问题,有什么办法强制重定向某个文件里面的函数实现

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107432
QQ
发表于 2019-12-7 01:28:32 | 显示全部楼层 |阅读模式
MDK的RTE环境添加LwIP软件包后,此贴文件里面有个函数实现不合理想把他修改了。

打算是把这个文件隔离出来,实际测试发现这个文件耦合太多文件了,隔离不方便

QQ截图20191207012824.jpg


回复

使用道具 举报

10

主题

140

回帖

170

积分

初级会员

积分
170
发表于 2019-12-7 09:16:35 | 显示全部楼层
将需要重定向的函数前面加weak,然后在其他文件中重新定义一个函数。
回复

使用道具 举报

3

主题

1246

回帖

1255

积分

至尊会员

积分
1255
发表于 2019-12-7 09:29:29 | 显示全部楼层
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(); //  这一句不要,是不是就变成纯粹的test_1 了 ?
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107432
QQ
 楼主| 发表于 2019-12-7 10:33:13 | 显示全部楼层
lvehe 发表于 2019-12-7 09:16
将需要重定向的函数前面加weak,然后在其他文件中重新定义一个函数。

可以的,就是要客户修改源码,不太方便
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107432
QQ
 楼主| 发表于 2019-12-7 10:34:05 | 显示全部楼层
morning_enr6U 发表于 2019-12-7 09:29
extern void $Super$$test(void);
//自定义代码
void test_1()

我尝试这个办法了,他有个参数,有办法解决不
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-31 13:18 , Processed in 0.171786 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表