1.15.1 Tentative d’utilisation du résultat d’une fonction renvoyant void ..............106
1.15.2 Que se passe-t-il si on n’utilise pas le résultat de la fonction? ................107
1.15.3 Renvoyer une structure ........................................108
1.16 Pointeurs ......................................................109
1.16.1 Renvoyer des valeurs ..........................................109
1.16.2 Échanger les valeurs en entrée ...................................119
1.17 Opérateur GOTO .................................................120
1.17.1 Code mort .................................................123
1.17.2 Exercice ..................................................124
1.18 Sauts conditionnels ...............................................124
1.18.1 Exemple simple .............................................124
1.18.2 Calcul de valeur absolue ........................................141
1.18.3 Opérateur conditionnel ternaire ...................................143
1.18.4 Trouver les valeurs minimale et maximale ............................146
1.18.5 Conclusion .................................................151
1.18.6 Exercice ..................................................152
1.19 Déplombage de logiciel .............................................152
1.20 Blague de l’arrêt impossible (Windows 7) .................................154
1.21 switch()/case/default ..............................................154
1.21.1 Petit nombre de cas ...........................................154
1.21.2 De nombreux cas ............................................168
1.21.3 Lorsqu’il y a quelques déclarations case dans un bloc .....................180
1.21.4 Fall-through ................................................184
1.21.5 Exercices ..................................................185
1.22 Boucles .......................................................185
1.22.1 Exemple simple ..............................................185
1.22.2 Routine de copie de blocs de mémoire ...............................196
1.22.3 Vérication de condition ........................................199
1.22.4 Conclusion .................................................200
1.22.5 Exercices ..................................................201
1.23 Plus d’information sur les chaînes ......................................202
1.23.1 strlen() ...................................................202
1.23.2 Limites de chaînes ............................................213
1.24 Remplacement de certaines instructions arithmétiques par d’autres ................213
1.24.1 Multiplication ...............................................213
1.24.2 Division ...................................................218
1.24.3 Exercice ..................................................219
1.25 Unité à virgule ottante .............................................219
1.25.1 IEEE 754 ..................................................219
1.25.2 x86 .....................................................219
1.25.3 ARM, MIPS, x86/x64 SIMD .......................................220
1.25.4 C/C++ ...................................................220
1.25.5 Exemple simple ..............................................220
1.25.6 Passage de nombres en virgule ottante par les arguments .................230
1.25.7 Exemple de comparaison .......................................232
1.25.8 Quelques constantes ..........................................266
1.25.9 Copie ....................................................266
1.25.10 Pile, calculateurs et notation polonaise inverse ........................266
1.25.11 80 bits? ..................................................266
1.25.12 x64 .....................................................266
1.25.13 Exercices .................................................266
1.26 Tableaux ......................................................266
1.26.1 Exemple simple ..............................................267
1.26.2 Débordement de tampon .......................................274
1.26.3 Méthodes de protection contre les débordements de tampon ................282
1.26.4 Encore un mot sur les tableaux ...................................285
1.26.5 Tableau de pointeurs sur des chaînes ................................286
1.26.6 Tableaux multidimensionnels .....................................293
1.26.7 Ensemble de chaînes comme un tableau à deux dimensions ................300
1.26.8 Conclusion .................................................304
1.26.9 Exercices ..................................................304
1.27 Exemple: un bogue dans Angband ......................................304
1.28 Manipulation de bits spéciques .......................................306
1.28.1 Test d’un bit spécique .........................................307
iv