Lire du code à voix haute
Savoir lire du code est essentiel pour se faire comprendre et pour gagner du temps. En utilisant et en apprenant ces termes vous comprendrez ce qu’essaie de vous dire votre prof. Quand il ou elle vous dira :
si vous voulez stocker le complément d’une valeur écrivez une assignation du genre “a prend la valeur de non b”
Symboles
Table des symboles et de leur traductions
| Symbole | anglais | français |
|---|---|---|
# |
pound sign | disèse |
#! |
shebang (prononcé “shi” ou “cheu”) | idem |
! |
bang, not | bang, non, barre |
() |
parens, parenthesis, brackets | parenthèses |
{} |
curly braces or brackets | accolades |
<> |
angled brackets or braces | chevrons |
[] |
square brackets or braces | crochets |
. |
dot, point (dans un nombre) | point, virgule (dans un nombre) |
: |
colon | deux-points |
; |
semi-colon | point virgule |
/ |
slash | slash |
\ |
backslash | antislash |
= |
equal sign, “x is assigned y” | symbole égal, “x prend la valeur de y” |
== |
equals | est égal à, vaux |
> |
is greater than | est plus grand que |
>= |
is greater or equal to | est plus grand ou égal à |
<= |
is lower or equal to | est plus petit ou égal à |
< |
is lower than | est plus petit que |
“!” bang or not
Le point d’exclamation peut-être utilisé dans plusieurs contextes. Lorsqu’on l’utilise en shell, on va souvent l’appeler bang.
Exemple :
#!/bin/sh- se lit “shebang slash bin slash sh”
- on voit ça souvent au début d’un script shell
sudo !!- se lit sudo bang bang
- ça sert à relancer la commande d’avant en sudo, dans un shell
a = !b;- se lit “a prend la valeur de non b”, “a is assigned the value of not b”
- c’est du code valide en C.
“#” she, dièse ou croisillon
Le symbole # n’est techniquement pas un dièse, c’est un croisillon, ou un carré. Mais tout le monde en français l’appelle dièse. Un vrai dièse ça ressemblerai à ça ♯.
Associé à un point d’exclamation, le # s’appelle “she”. On lira #! “shebang”.
En anglais on l’appelle “pound”.
Exemples de lectures :
#include <stdlib.h>se lit “dièse include”.#definese lit “dièse define”.#!/bin/shse lit “shebang”.
Syntaxes communes
Nous allons voir comment lire différentes syntaxes que l’on retrouve particulièrement couramment.
Appels de fonctions
is_even(12);
Cet appel de fonction peut être lu “is_even de 12”.
res = stu_strcmp(str1, str2);
Dès qu’une ligne est un peu plus longue, il y a davantage de possibilités de lectures :
- “res prend la valeur de stu_strcmp de str1 et str2”
- “res prend la valeur de retour d’un appel à stu_strcmp avec str1 et str2 en arguments”
Tableaux
Prenons cet exemple de code :
int *array;
array = malloc(sizeof(int) * 5);
if (!array) {
return;
}
array[0] = 1;
array[1] = 789;
free(array);
Déclaration
int *array;
On déclare un
intétoilearray(ou un pointeur surint,array).
Allocation mémoire (malloc)
array = malloc(sizeof(int) * 5);
if (!array) {
return;
}
arrayprend la valeur de retour demalloc sizeof intfois 5.
ou
arrayprend la valeur d’unmallocde 5int
ou encore
on alloue de la mémoire pour 5
intet on en garde l’adresse (renvoyée parmalloc) dansarray
Enfin :
Si
arrayestNULL, on renvoie immédiatement. Sinon on continue.
Assignation aux cases du tableau
array[0] = 1;
array[1] = 789;
arrayde zéro prend une valeur de 1 et array de 1 prend la valeur 789.
Libération de la mémoire (free)
free(array);
On libère la mémoire d’array.
Fonctions
int main(void)
{
int a;
int b;
a = 1
b = !a;
printf("%d\n", b);
return a;
}
Dans une fonction
mainqui ne prend pas de paramètres et qui renvoie un int :
- on déclare deux int,
aetb;aprend la valeur 1 ;bprend la valeur de nona;- on affiche
bavecprintf;- on renvoie
a.
Exemples
Déclarations, assignations, appels
int a;
int b;
a = 12;
b = is_even(a);
- on déclare deux int, a et b ;
- a prend la valeur 12 ;
- b prend la valeur de is_even de a.
Un appel de fonction peut se lire de différentes façon, prononcer is_even(a) : is_even est plutot similaire à ce que l’on ferai en maths en lisant .