Unfamiilar宏观扩张

时间:2016-07-29 15:51:15

标签: c macros

我熟悉std #defines和min max函数的宏扩展,但是这个抛出了我。特别是定义中的#。你的想法很受欢迎。

for (int r = 0; r <= N; r++)
{
    for (int c = 0; c <= p.W; c++) 
    {
        V[r, c] = 0;
    }
}

2 个答案:

答案 0 :(得分:2)

您应该阅读有关documentation的一些C Preprocessor##约为Concatenation。因此,TAB_WIDGET_ROW(xy)TAB_WIDGET_ROW之类的调用可能会扩展为{xy_seq, xy_len, xy_rep}

答案 1 :(得分:1)

__m256是用于连接的C预处理器标准宏。

这样,代码:

_mm256_mul_ps

将扩展为:

##

#define TAB_WIDGET_ROW(t) {t##_seq, t##_len, t##_rep} int foo[3] = TAB_WIDGET_ROW(bar); 数组将填充变量值int foo[3] = {bar_seq, bar_len, bar_rep}; foobar_seq

有关更多信息,请参阅here