如何用宏重新定义函数?

2019-12-30 19:24发布

比如写好的函数
void debug_uart(uint8_t *data);

我想用宏重定议它
#ifdef debug
#define debug_sed(a) debug_uart(a);
#else
#define debug_sed(a)
#endif

发现不行。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
硬邦邦
1楼-- · 2019-12-31 14:45
#include <stdio.h>

void debug_uart(uint8_t *data)  
{
    printf(data);
}

#define debug

#ifdef debug
#define debug_sed(a) debug_uart(a);
#else
#define debug_sed(a)
#endif

int main()
{
        debug_sed("你好");
    return 0;
}
leicai05
2楼-- · 2019-12-31 19:26
 精彩回答 2  元偷偷看……
takashiki
3楼-- · 2019-12-31 20:43
宏定义不要分号,不要分号!再则,直接替换函数名,不要定义参数表。
硬邦邦
4楼-- · 2020-01-01 01:04
本帖最后由 硬邦邦 于 2017-3-9 10:52 编辑
leicai05 发表于 2017-3-9 09:29
是可以的,你报什么错!!


编译、下载都没问题,串口用debug_sed("你好")没输出,debug_uart("你好")有输出
硬邦邦
5楼-- · 2020-01-01 03:33
takashiki 发表于 2017-3-9 09:35
宏定义不要分号,不要分号!再则,直接替换函数名,不要定义参数表。

实际没分号的,这里笔误
changer15309
6楼-- · 2020-01-01 04:45
本帖最后由 changer15309 于 2017-3-9 11:17 编辑
硬邦邦 发表于 2017-3-9 10:51
实际没分号的,这里笔误


先确认下宏定义展开是哪一种?是不是def了debug

一周热门 更多>