【问题标题】:Parameterized includes参数化包括
【发布时间】:2017-12-06 14:31:07
【问题描述】:

在一些 C 程序中(例如 gecko),我注意到一个习惯用法,即程序会临时定义一个宏,然后包含一个使用该宏的文件,然后取消定义该宏。这是一个简单的例子:

speak.c:

#define SPEAK(phrase) (printf("When I speak I say %s\n", (phrase)))
#include "dog.h"
#undef SPEAK

狗.h:

SPEAK("woof");

扩展为:

(printf("When I speak I say %s\n", ("woof")))

我认为这可能是一种有用的技术,可以通过指定扩展站点的行为来概括包含的代码。

此模式是否有名称,或者以前是否曾写过?

【问题讨论】:

标签: c macros c-preprocessor


【解决方案1】:

这是通常称为X macros 的变体。

进一步阅读

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多