You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用宏实现传入参数生成指定格式的函数调用代码?

用宏简化函数调用实现方案

完全可以通过C预处理宏实现这个需求,核心是利用**令牌粘贴(Token Pasting)**操作符##来拼接函数名。

宏定义写法

#define foo(Thing) StartingFunctionName##Thing##Callback(&Thing)

工作原理

  • ##操作符的作用是在预处理阶段把相邻的两个令牌(Token)拼接成一个新的令牌。
  • 当你调用foo(MyFunction);时,预处理器会自动把StartingFunctionName、MyFunction、Callback这三个令牌拼接成StartingFunctionNameMyFunctionCallback,同时把参数&MyFunction传入,最终展开为:
    StartingFunctionNameMyFunctionCallback(&MyFunction);
    
    完全符合你需要的原始调用格式。

注意事项

  • 这个写法是标准C的特性,只要你的编译器遵循C标准(比如C99、C11等),都能正常工作。
  • 传入的Thing必须是合法的标识符(比如函数名),不能包含空格或特殊字符,否则令牌拼接会出错。

内容的提问来源于stack exchange,提问作者Guelque Hadrien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:01:19