[英]Preprocessor #if Array
我正在处理大量代码,并且希望在参数文件中进行一些计算,因此我使用的是预处理程序语言。
所以
const D_REAL spher2car[3] = {
sin(theta)*cos(phi),
sin(theta)*sin(phi),
cos(theta)
};
const D_REAL spher2car2[3] = {
spher2car[0]+h0*sin(thetap)*cos(phip),
spher2car[1]+h0*sin(thetap)*sin(phip),
spher2car[2]+h0*cos(thetap)
};
#if (spher2car[2]<spher2car2[2])
给我错误
the token "[" is not valid in preprocessor expressions
因此,基本上,我必须设置一个不再更改的值,但是该值是程序启动之前其他常量参数的依赖。
我该怎么做?
预处理器甚至在编译器之前运行。 您所拥有的只能在运行时进行评估。 因此,请使用常规的if
语句:
if (spher2car[2]<spher2car2[2]) {
// do something
} else {
// do something else
}
请注意,因为这是必须驻留在函数内部的可执行代码。 上面的变量声明也是如此,因为必须对表达式进行求值以初始化它们。
一个好地方,做到这一点是在main
,你做任何事情之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.