2012-02-17 116 views
1

我想通过使用#defined参数填充密钥并使用与所定义的参数对应的哈希值创建哈希映射/表...所以,我可以轻松地添加更多参数在将来。从#define宏中填充哈希表

 //key //value 
#define paramA 1 
#define paramB 2 

有没有这样做的方法?

+0

与宏无关,因为在编译器查看源代码时,所有提到的'paramA'和'paramB'都将消失。你*可以*用*甚至更多的宏来解决这个问题,但是它被忽视了。 – Jon 2012-02-17 18:40:42

回答

2

不管你如何创建表的,你将不得不通过增加这些成员表中明确地以某种方式来填充它。所以,你的成员是否被#defined,设置为const或者其他什么都没有关系 - 工作仍然在将它们添加到表中。

我会说你可以做的最好的(给定你的目标)是设置你的#define来实际定义一个值的数组,并设置第二个#define来定义该数组的大小。然后,您可以通过循环遍历阵列来根据大小循环填充散列表。

我觉得这听起来像一个设计的味道,虽然,你可能要重新考虑自己在做什么,并寻找一种更好的方式 - 就像从一个数据库或文件也许在看什么?

+0

谢谢,我想即将实施一系列结构。 – Telenoobies 2012-02-17 18:54:04