我想知道是否有可能迭代传递给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;
}
TAOCP第1卷中的"练习笔记"部分中有一个问题,如下所示:
"证明13 ^ 3 = 2197.概括你的答案.(这是作者试图避免的一个可怕的问题)."
问题:
你怎么会真正证明这一点?(直接乘法是一种方式,另一种方式可以是使用(a + b)^ 3的公式).解决方案是否需要使用某种方法来进行某种推广?
这里的概括是什么?
为什么这是一个可怕的问题?
您知道哪些其他类似的可怕问题?
感谢任何答案.
PS我很抱歉,如果上面的问题陈述使它看起来像一个作业问题,但事实并非如此.要求人们不要将此标记为作业问题,以便更多人能够给出答案.