我必须将宏mode_n
传递给库中的宏set_field
。 mode_n
是使用mode_one
#define mode_one(k, phi) cos(k*x + phi)
x
在set_field
中定义。 phi
是一个随机数。 mode_n
是具有不同mode_one
和k
的一系列phi
的总和。 mode_n
的一个简单示例是
#define mode_n (mode_one(1, 0.5) + mode_one(2, 0.4) + mode_one(3, 0.9))
有3个术语。如果有数百个这样的术语,那将是乏味的。这就是为什么我希望使用循环定义mode_n
的原因。
我希望n
成为mode_n
的一个参数。 set_field
像这样的宏
#define set_field(mode_n) { \
double x, f; \
for (int i = 0; i < 10; i++) { \
x = i * 10; \
f = mode_n; \
}
是否可以使用C宏定义mode_n
?
答案 0 :(得分:-1)
是的,你可以在宏中放一个循环。把它放在一行或多行。如果它是多行,则需要在行尾添加一个转义字符。