
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érication 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éciques .......................................306
1.28.1 Test d’un bit spécique .........................................307
iv