使用正确的 #define 预处理器指令语法来替换/重命名文本/函数名称

问题描述 投票:0回答:1

使用预处理器指令 #define 替换/重命名以下代码片段的正确语法是什么:

printf("\nrxBuffer: %s", rxBuffer);
fprintf(fpOut, "\nReceived Command: %s",rxBuffer);

致:

xil_printf("\nrxBuffer: %s", rxBuffer);
//fprintf(fpOut, "\nReceived Command: %s",rxBuffer);

不确定如何将宏名称与进行正确替换的值分开。为了避免子字符串不匹配的可能性,我打算通过包含初始函数括号和引号来区分 printf 和 fprintf,但从语法上讲,我不太清楚如何实现这一点?

示例:

#define XIL_VITIS
#ifdef XIL_VITIS
#define printf(" xil_printf("
#define fprintf //fprintf
#endif

最终我决定简单地复制文件并实际修改代码。但在最初闲逛之后,我仍然很好奇正确的语法可能/会是什么?

c preprocessor-directive
1个回答
0
投票

这里有一个适合您目的的解决方案

#define XIL_VITIS
#ifdef XIL_VITIS
#define printf xil_printf
#define fprintf(...)
#endif
© www.soinside.com 2019 - 2024. All rights reserved.