Pergunta : Como usar o mesmo software para passar o argumento que o valor em uma plataforma e o endereço em outra?

Na plataforma A, o argumento da função é valor não assinado.  Na plataforma B, a relação exige o endereço ser passada em vez do value.

For a camada mais elevada do software que está fazendo a ligação de controle, a exigência é usar o mesmo jogo das limas para a plataforma A e a plataforma B.  Eu criei o seguinte macro para assegurar-se de que a função que funciona na plataforma A começ o valor e a função que funciona na plataforma B começ o endereço: cnfg->channel
#endif

Is da CANALETA do #define do

#ifdef PLATFORM_B
& da CANALETA do #define do
#else
(do cnfg->channel) lá uma maneira melhor de escrever este macro?
Is lá uma outra solução além do macro? um software mais elevado da camada de


The que faz a ligação de controle é como segue: vácuo do

typedef * channel_t;  /* no channel_t da plataforma B */
/* é não assinado no set_priority da plataforma A */

void (canaleta do channel_t, valor não assinado);

typedef struct cnfg_s   cnfg_t;pulseidc_cnfg_s
do struct do

typedef {canaleta não assinada do
;
do
…};
do


void
some_init (*work do work_t, *cnfg
do cnfg_t do
) {set_priority do
do
… (CANALETA, DIS_PRI);

do

… class= do

Resposta : Como usar o mesmo software para passar o argumento que o valor em uma plataforma e o endereço em outra?

>> eu não posso fornecer esta informação porque é proprietária.

Agora eu compreendo porque você é relutante responder claramente a minhas perguntas;)

Desde que eu não sei que API você está falando aproximadamente, eu não tenho bastante informação para ajudá-lo. Você terá que verific dentro a documentação do API se haja uma função que converta um valor do channel_t a sua identificação numérica

Algo gosta:

        getChannelId do int (channel_t c) {
                /* a execução aqui seria diferente em ambas as plataformas, mas escondido de você *
        }

Nesse caso, você pode simplesmente chamar esta função:

        se (
          (>= 0 do getChannelId (cnfg->channel)) &&
          (getChannelId (cnfg->channel) <>        )
Outras soluções  
 
programming4us programming4us