小编vsh*_*noy的帖子

是否有可能在可变参数宏中迭代参数?

我想知道是否有可能迭代传递给C99中的可变参数宏或使用任何GCC扩展的参数?

例如,是否可以编写一个通用的宏,它接受一个结构,并将其字段作为参数传递,并打印结构中每个字段的偏移量?

像这样的东西:

struct a {
    int a;
    int b;
    int c;
};

/* PRN_STRUCT_OFFSETS will print offset of each of the fields 
   within structure passed as the first argument.
*/

int main(int argc, char *argv[])
{
    PRN_STRUCT_OFFSETS(struct a, a, b, c);

    return 0;
}

c foreach c99 variadic c-preprocessor

66
推荐指数
5
解决办法
5万
查看次数

关于TAOCP第一卷"练习笔记"中出现的练习

TAOCP第1卷中的"练习笔记"部分中有一个问题,如下所示:

"证明13 ^ 3 = 2197.概括你的答案.(这是作者试图避免的一个可怕的问题)."

问题:

  1. 你怎么会真正证明这一点?(直接乘法是一种方式,另一种方式可以是使用(a + b)^ 3的公式).解决方案是否需要使用某种方法来进行某种推广?

  2. 这里的概括是什么?

  3. 为什么这是一个可怕的问题?

  4. 您知道哪些其他类似的可怕问题?

感谢任何答案.

PS我很抱歉,如果上面的问题陈述使它看起来像一个作业问题,但事实并非如此.要求人们不要将此标记为作业问题,以便更多人能够给出答案.

algorithm math taocp

7
推荐指数
1
解决办法
697
查看次数

标签 统计

algorithm ×1

c ×1

c-preprocessor ×1

c99 ×1

foreach ×1

math ×1

taocp ×1

variadic ×1