【发布时间】:2018-12-29 04:29:51
【问题描述】:
我正在处理大量代码并想在参数文件中进行一些计算,因此我使用的是预处理器语言。
所以
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
所以基本上我必须设置一个不会再改变的值,但在程序启动之前依赖于其他常量参数。
我该怎么做?
【问题讨论】:
-
您确实知道预处理器只是编译时的东西(它甚至会在实际解析器运行之前运行)?并且对变量或其运行时值一无所知?
-
@Someprogrammerdude 我认为这里对
const不可变存在误解。 -
但显然,即使只是前两行也行不通。
标签: c c-preprocessor preprocessor