Questione : Come utilizzare lo stesso software per passare discussione del valore in una piattaforma e dell'indirizzo in un altro?

In piattaforma A, la discussione di funzione è il valore senza firma.  In piattaforma B, l'interfaccia richiede l'indirizzo di essere passata anziché il value.

For l'più alto strato del software che sta facendo la chiamata di funzione, il requisito è di usare lo stesso insieme delle lime per la piattaforma A e la piattaforma B.  Ho generato la seguente macro per accertarmi che la funzione che funziona in piattaforma A ottenesse il valore e la funzione che funziona in piattaforma B ottiene l'indirizzo: cnfg->channel
#endif

Is della SCANALATURA di #define del

#ifdef PLATFORM_B
& della SCANALATURA di #define del
#else
(del cnfg->channel) là un migliore senso scrivere questa macro?
Is là un'altra soluzione oltre alla macro? l'più alto software di strato di


The che fa la chiamata di funzione è come segue: vuoto del

typedef * channel_t;  /* nel channel_t della piattaforma B */
/* è senza firma in set_priority della piattaforma A */

void (scanalatura del channel_t, valore senza firma);

typedef struct cnfg_s   cnfg_t;pulseidc_cnfg_s
{scanalatura senza firma dello struct del

typedef del
;
del
…};
{set_priority del
del
… (SCANALATURA, DIS_PRI) del


void
some_init (*work del work_t, *cnfg
del cnfg_t del
);

del

… class= del

Risposta : Come utilizzare lo stesso software per passare discussione del valore in una piattaforma e dell'indirizzo in un altro?

>> non posso fornire questi informazioni perché sono riservate.

Ora capisco perché siete riluttante a rispondere chiaramente alle mie domande;)

Poiché non conosco che api state parlando, non ho abbastanza informazioni per aiutarle. Dovrete controllare la documentazione di api se ci è una funzione che converte un valore del channel_t in relativa identificazione numerica

Qualcosa gradice:

        getChannelId di int (channel_t c) {
                /* l'esecuzione qui sarebbe differente su entrambe le piattaforme, ma nascosto da voi */
        }

In quel caso, potete denominare semplicemente questa funzione:

        se (
          (>= 0 del getChannelId (cnfg->channel)) &&
          (getChannelId (cnfg->channel) <>        )
Altre soluzioni  
 
programming4us programming4us