我有一個.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++文件,然後添加標籤。 –