Fråga : Hur man använder samma programvara för övergående argument som värderar i en plattform och tilltala i another?

I plattform A, fungeraargumentet är unsigned värderar.  I plattform B, ha kontakt kräver tilltalar för att passeras i stället för value.
For det högre programvarulagrar, som är danande fungeraappellen, kravet är att använda samma uppsättning av sparar för plattform A och plattformen B.  Jag skapade efter makroen för att se till fungerar spring i plattform A får värdera och fungerar spring i plattform B får tilltala: #definen för

#ifdef PLATFORM_B
KANALISERAR, & #definen för
#else
(för cnfg->channel) KANALISERAR cnfg->channel
#endif

Is där ett bättre långt för att skriva denna makro?
Is där en annan lösning förutom makroen? för lagrarprogramvara för


The högre danande fungeraappellen är som följer:

typedef annullerar * channel_t;  /* i channel_t för plattform B */
/* är unsigned i set_priority för plattform A */

void (channel_t kanaliserar, unsigned värderar);

typedef struct cnfg_s   cnfg_t;structpulseidc_cnfg_s
för

typedef {unsigned
kanaliserar;
för
…};
{set_priority, för


void
some_init (work_t*work, cnfg_t*cnfg
för
) för
för
… (KANALISERA, DIS_PRI);

för

… " klar "

Svar : Hur man använder samma programvara för övergående argument som värderar i en plattform och tilltala i another?

>> jag kan inte ge denna information, därför att den är privat.

Nu jag förstår varför du är motvillig att svara att mitt ifrågasätter klart;),

Sedan jag inte vet vilken API du talar omkring, jag har inte nog information som hjälper dig. Du ska måste att kontrollera in API-dokumentationen huruvida där är en fungera som konverterar en channel_t värderar till dess numeriska ID

Något som är lik:

        int-getChannelId (channel_t c) {
                /* genomförandet som skulle här, är olik på båda plattformar, men dolt från dig *
        }

Isåfall du kan enkelt appellen detta fungera:

        om (
          >= 0 (för getChannelId (cnfg->channel)) &&
          (getChannelId (cnfg->channel) <>        )
Andra lösningar  
 
programming4us programming4us