aaaaaaaaa1+1=

如何动态生成变量名并使用 [问题點数:40分结帖人whigmaleerig]

假设我有从其他人拿来的头文件,里面有如下形式的变量定义

n值是从1到n的数字n我知道。

问题:如何依次遍历a1到an


实际类型不是char*比这个复杂,是多维数组且最后一维数组长度不定还差异很大。如果做数组会浪费很多存储空间



你这里不需要知道大小:
用宏那种,只能一行行写死索引来引用

) = 20;中的“1”是常量,我想要的是变量的值是1而不是变量本身就是这个1要可变。


};
你这里不需要知道大尛: }用宏那种只能一行行写死索引来引用。

----估计也只能写死了

-----这个头文件是外来的,我不能修改。


实际类型不是char*,比这个复杂昰多维数组,且最后一维数组长度不定还差异很大如果做数组会浪费很多存储空间。

自己做个数组啊没要你改他的头文件做数组。

要昰只是遍历一次的话就没必要了,干写代码吧

我想这个是不可能的这些都是编译期的标识符

当然,你要是分析变量名的话,你可以编程讀取这个文件

在程序开始运行时所有变量名早已消失,只剩下内存地址留在程序中待使用

所以想在程序运行时处理变量名是不可能的C/C++沒有反射机制,如果有类似需求请转java

根本解决方法是修改自己的程序设计如果是别人的代码不好改,可以自己写一个小程序来生成针对咜的处理代码再将这段生成的代码插入主代码中

c、c++不支持lz这样的需求,lz可以将an转换a[n]处理


实际类型不是char*比这个复杂,是多维数组且最後一维数组长度不定还差异很大。

你懂指针吗?明白指针的含义吗?

节省空间是要保证程序能正常运行其功能的前提

你是来编程的,还是来节渻空间的

假设如果可能……(说白了有前置条件)你可以添加如下代码:

那么你就可以使用 for循环了,与四楼比没有本质区别,但应该不會累死人


实际类型不是char*比这个复杂,是多维数组且最后一维数组长度不定还差异很大。

你懂指针吗?明白指针的含义吗?

节省空间是要保证程序能正常运行其功能的前提

你是来编程的,还是来节省空间的

----我这个场景比较特殊,需要将数据都做到exe文件中并且数据量较大,a1可能有几十万条如a1[112345]a2可能几万条如a2[1234],虽然一个指针在win32平台上只有4个字节但累加起来可能导致exe文件多了十几M甚至几十M。

匿名用户不能发表回複!

我要回帖

更多关于 AAA 的文章

 

随机推荐