在某种情况下,我必须定义一些变量,在这些变量中我可以控制部分变量名称(如下var所示)。
float var1, var2, var3....;
Run Code Online (Sandbox Code Playgroud)
但我无法控制他们将采取的数字。(这是因为这些是var*我从其他一些代码中生成的,每次编译时,最后的这些数字都会不同)。
我的问题:有没有办法先验地定义这些变量?
喜欢(可以说var*是在var100.内生成的)
float var1,...,var100;
Run Code Online (Sandbox Code Playgroud)
无需明确键入每个var*. 将数组放在这个位置会好得多,但是有没有办法以这种方式做到这一点?
如果您确实知道界限并且不介意留下未使用的变量,则可以使用预处理器来生成它们。例如:
#include <boost/preprocessor/repetition/repeat.hpp>
#define ONE_FLOAT(z, n, x) float var##n;
BOOST_PP_REPEAT(100, ONE_FLOAT, x)
Run Code Online (Sandbox Code Playgroud)
注 1:BOOST_PP_REPEAT手动实施超出了本答案的范围。
注 2:当然,数组和类似的解决方案是正确的解决方案,但问题不允许这些。
编辑:这是在知道提前知道界限之前写的。
不。您问的是如何在不知道名称的情况下定义变量,这是不可能的。
这也没有意义,因为如果你不知道他们的名字,你也无法对他们做任何事情。这就像在不知道符号是什么的情况下试图用符号编写方程。
您将需要某种代码生成脚本来为您填充它们,然后可能将它们填充到#include正确的位置。对于您实际使用变量的地方也是如此。
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |