Bonjour à tous,
pouvez vous m'expliquer ce qu'elle fait define sur ce petit bout de code
Ce qui m'echape c'est à partir de légalité en faitCitation:
#define ATTRIB(S) (dfa->state_attrib[s] == '\0' ? 'S' : dfa->sate_attrib[s])
Merci d'avance
Version imprimable
Bonjour à tous,
pouvez vous m'expliquer ce qu'elle fait define sur ce petit bout de code
Ce qui m'echape c'est à partir de légalité en faitCitation:
#define ATTRIB(S) (dfa->state_attrib[s] == '\0' ? 'S' : dfa->sate_attrib[s])
Merci d'avance
(dfa->state_attrib[s] == '\0' ? 'S' : dfa->sate_attrib[s])
equivaut a:
j'ai pris une variable x pour "illustrer" le fait que l'operateur ternaire (le ?) est bien un operateur permettant de faire des affections.Code:
1
2
3
4
5
6 char x; if(dfa->state_attrib[s] == '\0') x='S'; else x=dfa->sate_attrib[s];
Bah, c'est l'opérateur ternaire '?:' . Il n'est pas inutile d'ouvrir son livre de C de temps en temps...Citation:
Envoyé par tagwin
K&R2 : Chapitre 2.11, page 51 (autrement dit, au début...)