我有一个.c文件,包含类似环绕功能与宏
void foo(void)
{
...doSomeStuff...
}
一些功能现在,我想围绕一些代码的功能,导致
void foo(void)
{
...additional stuff...
{
...doSomeStuff...
}
...do more additional stuff...
}
总之,想要把功能的整个身体放在一个“外部”功能中。
我试图把它与可以这样使用宏工作:
MAGIC_MACRO(foo)
{
...doSomeStuff...
}
这样,宏用户(或我)只是要采取foo的函数的头部和更换返回void键入MAGIC_MACRO的东西。 MAGIC_MACRO将扩展到“额外的和更多的东西”部分。
好的,我认为这很容易。我试图像这些包含do-while(0)循环的宏来实现它。那么,最大的问题是“更多的东西”部分,它必须在旧功能的主体之后。
对此有何看法? 问候,lugge
我不完全可以看到这一点。为什么不简单地从另一个函数调用'foo'?如果你想“替换”foo,只需改变原来的名字(如果你真的喜欢它,可以用宏)。 – Mat
使用宏来“隐藏”某些东西是一种可怕的滥用。 –
我已经删除了C++标记,因为它显然是一个c文件。如果它实际上是一个C++文件,然后添加标签。 –