Question : Comment employer le même logiciel pour passer l'argument que la valeur dans une plate-forme et l'adresse dans des autres ?

Dans la plate-forme A, l'argument de fonction est valeur non signée.  Dans la plate-forme B, l'interface exige de l'adresse d'être passée au lieu du value.

For la couche plus élevée de logiciel qui fait l'appel de fonction, la condition est d'employer le même ensemble de dossiers pour la plate-forme A et la plate-forme B.  J'ai créé le macro suivant pour m'assurer que la fonction fonctionnant dans la plate-forme A obtiennent la valeur et la fonction fonctionnant dans la plate-forme B obtient l'adresse : cnfg->channel
#endif

Is de CANAL de #define du

#ifdef PLATFORM_B
et de CANAL de #define du
#else
(de cnfg->channel) là une meilleure manière d'écrire ce macro ?
Is là une autre solution sans compter que le macro ? un logiciel plus élevé de couche de


The faisant l'appel de fonction est comme suit : vide du

typedef * channel_t ;  /* dans le channel_t de la plate-forme B */
/* est non signé dans le set_priority de la plate-forme A */

void (canal de channel_t, valeur non signée) ;

typedef struct cnfg_s   cnfg_t;pulseidc_cnfg_s
{canal non signé de struct du

typedef de
;
du
…} ;
{set_priority de
de
… (CANAL, DIS_PRI) du


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

du

… class= de

Réponse : Comment employer le même logiciel pour passer l'argument que la valeur dans une plate-forme et l'adresse dans des autres ?

>> je ne peux pas fournir ces informations parce qu'elles sont de propriété industrielle.

Maintenant je comprends pourquoi vous êtes peu disposé à répondre à mes questions clairement ;)

Puisque je ne sais pas de quel api vous parlez, je n'ai pas assez d'information pour vous aider. Vous devrez signer la documentation d'api s'il y a une fonction qui convertit une valeur de channel_t en son identification numérique

Quelque chose aiment :

        getChannelId d'international (channel_t c) {
                /* l'exécution ici serait différent sur les deux plates-formes, mais caché de vous *
        }

Dans ce cas, vous pouvez simplement appeler cette fonction :

        si (
          >= 0 (de getChannelId (cnfg->channel)) &&
          (getChannelId (cnfg->channel) <>        )
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us