J'ai un tableau fixe des valeurs qui doivent être comme il est, car il est accessible de cette façon avec le protocole de communication utilisé (ne concerne pas la question), de cette façon:Mieux vaut utiliser une définition de macro ou un pointeur pour une valeur dans un tableau?
#define REGS_ARRAY_SIZE 256
int16 Regs[REGS_ARRAY_SIZE];
Chaque valeur a un but spécifique , par exemple:
Regs[ENABLE_MOTOR_ADDRESS]
sera utilisé pour indiquer d'un moteur est activé avec 0 ou 1.
pour utiliser plus confortablement ce genre de valeurs qui doit être accessible à partir du code I écrire et de l'extérieur t hrough le protocole de communication, j'ai pensé que mes options sont:
Pour utiliser une macro:
#define drive_enable (Regs [ ENABLE_MOTOR_ADDRESS ])
Pour utiliser un pointeur:
int16 *drive_enable = &(Regs [ ENABLE_MOTOR_ADDRESS ]);
Est-ce un d'eux mieux que l'autre? Pour moi, il semble plus pratique d'utiliser la macro, car j'évite d'introduire le besoin de déréférencer chaque fois que j'utilise la variable. Cependant je n'ai jamais de bons sentiments envers les macros ...
Un conseil?
L'approche macro semble assez naturel, bien que dans ce cas, je pourrais essayez d'écrire comme 'DRIVE_ENABLE' –
Vous pourriez aussi bien utiliser le même nom ENABLE_MOTOR (Regs [ENABLE_MOTOR_ADDRESS ]) – QuentinUK
Les deux sont des choses différentes. On déclare une variable l'autre ne l'a pas –