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”.
  • #define se lit “dièse define”.
  • #!/bin/sh se 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 étoile array (ou un pointeur sur int, array).

Allocation mémoire (malloc)

array = malloc(sizeof(int) * 5);
if (!array) {
	return;
}

array prend la valeur de retour de malloc sizeof int fois 5.

ou

array prend la valeur d’un malloc de 5 int

ou encore

on alloue de la mémoire pour 5 int et on en garde l’adresse (renvoyée par malloc) dans array

Enfin :

Si array est NULL, on renvoie immédiatement. Sinon on continue.

Assignation aux cases du tableau

array[0] = 1;
array[1] = 789;

array de 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 main qui ne prend pas de paramètres et qui renvoie un int :

  • on déclare deux int, a et b ;
  • a prend la valeur 1 ;
  • b prend la valeur de non a ;
  • on affiche b avec printf ;
  • 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 f(x)f(x).