【发布时间】:2016-06-23 03:42:20
【问题描述】:
我不完全确定该问题的名称,但我正在使用 MFC c++ 在 Visual Studio 2015 中开发一个 gui。
我的结构看起来像这样
static dataCollect::StatSrcListL_t s_struct9[] =
{
// Name Addr Type Mask Stride User
{ "Rx PMA Reset Done", statsRW::statMode9egrDeltDat, dataCollect::Irg, statMode9egrDelt_rxPmaRstDoneMask, 0x000 },
{ "Rx Reset Done", statsRW::statMode9egrDeltDat, dataCollect::Irg, statMode9egrDelt_rxResetDoneMask, 0x0000 },
{ "Rx Buffer Underflow", statsRW::statMode9egrDeltDat, dataCollect::IrgErr, statMode9egrDelt_rxBufUflwMask, 0x0000 },
{ "Rx Buffer AE", statsRW::statMode9egrDeltDat, dataCollect::IrgErr, statMode9egrDelt_rxBufAeMask, 0x0000 },
{ "Rx Buffer AF", statsRW::statMode9egrDeltDat, dataCollect::IrgErr, statMode9egrDelt_rxBufAfMask, 0x0000 },
{ "Rx Buffer Overflow", statsRW::statMode9egrDeltDat, dataCollect::IrgErr, statMode9egrDelt_rxBufOflwMask, 0x0000 },
{ "PRBS Err Det", statsRW::statMode9egrDeltDat, dataCollect::IrgErr, statMode9egrDelt_prbsErrMask, 0x0000 },
{ "PRBS Lck Det", statsRW::statMode9egrDeltDat, dataCollect::Irg, statMode9egrDelt_prbsLckMask, 0x0000 },
{ "Tx Reset Done", statsRW::statMode9ingDeltDat, dataCollect::Irg, statMode9ingDelt_txRstDoneMask, 0x000 },
{ "Tx PMA Reset Done", statsRW::statMode9ingDeltDat, dataCollect::Irg, statMode9ingDelt_txPmaRstDoneMask, 0x000 },
{ "Tx Buf OFlow/Uflow", statsRW::statMode9ingDeltDat, dataCollect::IrgErr, statMode9ingDelt_txBufOfUfMask, 0x0000 },
{ "Pwr Good", statsRW::statMode9ingDeltDat, dataCollect::Irg, statMode9ingDelt_pwrGoodMask, 0x000 },
{ "QPLL Lock Status", statsRW::statMode9ingDeltDat, dataCollect::Irg, 1 << statMode9ingDelt_qpllLock, 0x000 }
};
我一直在尝试用不同的方法让statMode9egrDeltDat 动态分配号码。根据正在使用的项目,可能会制作大约 10 到 50 个,并且在代码中单独编写 50 次似乎有点浪费时间和空间。除了数字 9(在本例中)从 0、1、2、3 等开始,其他一切都相同。
所以我的问题是,我怎样才能将上面的代码放入循环中以将数字增加到指定的数字。
【问题讨论】:
-
[将字符串转换为变量名] (stackoverflow.com/questions/7143120/…) 请参考此链接。在 c++ 中不可能使用字符串的值作为变量名,这就是你试图用不同的数字制作各种字符串,然后在结构中使用这些字符串作为变量名
-
可能有一些很好的理由进行冗余。好吧。将该表包装在一个类中,因为类构造函数擅长初始化事物。
-
你可以使用地图。
-
您要解决什么问题?我一个也看不见。除了您的过早优化方法的问题。您是否发现了性能问题,并将其追溯到您在问题中提供的代码段?我很确定没有。
-
@IInspectable 我希望解决的问题是从上面获取所有数字 9,并使其能够在某种循环中递增。这样我就可以避免让它根据程序的需要重复多次。
标签: c++ visual-studio-2015 mfc