je une structure définie commeL'attribution de structure donne "attend une expression"
typedef struct sCP {
nuint32_t Fr;
DrRange_t DR;
uint8_t B;
} CP_t;
Certaines valeurs prédéfinies
#define LC4 { 86, { ((D5 << 4) | D0) }, 0 }
#define LC5 { 87, { ((D5 << 4) | D0) }, 0 }
et une fonction
LMS_t LMCA(uint8_t id, CP_t params)
typedef enum eLoRaMacStatus {
LM_STATUS_OK,
LM_STATUS_BUSY,
LM_STATUS_PARAMETER_INVALID,
LM_STATUS_DEVICE_OFF,
} LMS_t;
Dans le code, il est utilisé comme
Lmca(3, (CP_t)LC4);
Lmca(4, (CP_t)LC5);
Lors de la compilation avec IAR pour ARM Cortex M3, j'obtiens un Error[Pe29]: expected an expression
sur les deux lignes.
Si je
CP_t t = LC4;
Lmca(3, t);
Cela va bien, mais j'ai la même erreur si j'essaie alors d'appeler
t = LC5;
Lmca(4, t);
Quelqu'un a une idée comment je peux résoudre ce problème?
L'une est une liste d'initialisation désignée, l'autre un littéral composé. C++ n'a pas de littéraux composés, AFAIK, alors assurez-vous de compiler avec un compilateur ** C ** moderne. – EOF
Est-ce que ce 't = (CP_t) LC5;' fonctionne? Si ce n'est pas le cas, il semble que le compilateur ne supporte pas les littéraux composés. – alk
@alk même résultat avec 't = (CP_t) LC5;' – mirmit