aboutsummaryrefslogtreecommitdiff
path: root/semestre 2/informatique/7- Structure (ou enregistrement).md
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 2/informatique/7- Structure (ou enregistrement).md')
-rw-r--r--semestre 2/informatique/7- Structure (ou enregistrement).md22
1 files changed, 12 insertions, 10 deletions
diff --git a/semestre 2/informatique/7- Structure (ou enregistrement).md b/semestre 2/informatique/7- Structure (ou enregistrement).md
index d06d805..9741146 100644
--- a/semestre 2/informatique/7- Structure (ou enregistrement).md
+++ b/semestre 2/informatique/7- Structure (ou enregistrement).md
@@ -5,11 +5,11 @@ tags:
semestre: 2
---
Pour organiser les données, on utilise `struct`
-```c
+```c title=structure.c
struct s_int_pair {
int fst;
int snd;
-}; // vraiment utile le ; ?
+}; // le ; est *obligatoire*
```
Est toujours au début du fichier `.c` ou dans le `.h` si elle est utilisée par plusieurs fichiers
|> possède deux champs nommés `fst` et `snd`
@@ -19,11 +19,11 @@ Les fichiers headers (`.h`) spécifient les interfaces utilisables par l'extéri
|> ne contient pas tout ce qui est privé
Pour qu'une variable utilise un struct, on écrit
-```c
+```c title=structure.c
struct s_int_pair point;
```
sauf que c'est long à écrire, donc on renomme tout ça avec un `typedef` :
-```c
+```c title=structure.c
typedef struct s_int_pair int_pair;
int main(){
int_pair point;
@@ -31,7 +31,7 @@ int main(){
}
```
on peut aussi tout définir d'un coup
-```c
+```c title=structure_better.c
typedef struct s_int_pair{
int fst;
int snd;
@@ -44,14 +44,14 @@ typedef struct s_int_pair{
> |> est une convention
Pour initialiser un struct, on utilise les parenthèses
-```c
+```c title=structure_init.c
int_pair p = {1,2}; // initialisation séquentielle
int_pair p2 = {.snd=3, .fst=4}; // initialisation sélective
```
la première est traditionnelle et est commune
Pour modifier les valeurs dans un struct, on accède aux champs avec l'opérateur `.` :
-```c
+```c title=structure_init.c
p.fst = -1;
p.snd = -2;
@@ -69,16 +69,16 @@ Structures et fonctions
Il n'existe pas d'arithmétique des structures
On peut chaîner les structures, i.e.
-```c
+```c title=chained_structure.c
struct _cell {
int v;
- struct cell* next;
+ struct _cell* next;
}
```
(ce qui donne une liste chaînée)
L'opérateur `->` est un raccourcie permettant le déférencement rapide
-```c
+```c title=arrow_operator.c
Foo *foo;
foo->bar = 10;
@@ -89,3 +89,5 @@ foo->baz();
// est équivalent à
(*foo).baz();
```
+
+On a fini toutes les questions de syntaxe en C \ No newline at end of file