0

所以我们有一些从另一种语言 (DPI-C) 调用的 C 外部函数。下面的这个函数简单地返回我们拥有的一些 C++ 队列的大小(它们是全局变量)。它工作正常。

对于特定队列,我们​​选择队列为 0、1、2。这因不同的程序而异,维护起来很头疼。我们希望用一个返回实际变量名称的字符串来索引每个队列。理想情况下,我们可能会将这些名称推送到某种列表中,这样我们就可以让函数查看变量是否在列表中。

有没有人对如何在这方面实现更可维护的东西有任何指示?

// this works- PITA
extern "C" int get_queue_size(int selectedQueue)
{
   switch(selectedQueue)
   {
      case 0:
         sizeOfQueueToReturn = intoModulator.size();
         break;
      case 1:
         sizeOfQueueToReturn = outOfModulator.size();
         break;
      case 2:
         sizeOfQueueToReturn = modulatorLaurentPulses.size();
         break;

理想的函数头/伪代码

// I'd like to get to here
extern "C" int get_queue_size(char* selectedQueue)
{
   for(int i = 0 i < list.size(); i++) 
     if( selectedQueue == #var(list[i]->) return list[i].size()
   
4

0 回答 0