我熟悉std #defines和min max函数的宏扩展,但是这个抛出了我。特别是定义中的#。你的想法很受欢迎。
for (int r = 0; r <= N; r++)
{
for (int c = 0; c <= p.W; c++)
{
V[r, c] = 0;
}
}
答案 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};
,foo
和bar_seq
。
有关更多信息,请参阅here。