7/30/2019 Apprenez a Programmer en c 2e Edition
1/545
7/30/2019 Apprenez a Programmer en c 2e Edition
2/545
7/30/2019 Apprenez a Programmer en c 2e Edition
3/545
7/30/2019 Apprenez a Programmer en c 2e Edition
4/545
7/30/2019 Apprenez a Programmer en c 2e Edition
5/545
S a u f m e n t i o n c o n t r a i r e , l e c o n t e n u d e c e t o u v r a g e e s t p u b l i s o u s l a l i c e n c e :
C r e a t i v e C o m m o n s B Y - N C - S A 2 . 0
L a c o p i e d e c e t o u v r a g e e s t a u t o r i s e s o u s r s e r v e d u r e s p e c t d e s c o n d i t i o n s d e l a l i c e n c e
T e x t e c o m p l e t d e l a l i c e n c e d i s p o n i b l e s u r : h t t p
:/ / c r e a t i v e c o m m o n s . o r g / l i c e n s e s / b y - n c - s a / 2 . 0 / f r /
S i m p l e I T 2 0 1 2 - I S B N : 9 7 9 - 1 0 - 9 0 0 8 5 - 0 0 - 8
7/30/2019 Apprenez a Programmer en c 2e Edition
6/545
A v a n t - p r o p o s
L
l o n z d n o m n n l o n o d l F i o
X l m l d d n m n d o l j o F g o m m n E o n n
n l n d n d l o n n n c n o n
9 m o F
t n o n n d n o l l n o l o F t 9 m o n m o d n n l
m n j n d n o l l F g 9 m o m n l l n m n n n d
o m d n d o W S F
t 9 m m d m n o l l l l l o n D o o m m n o n o n n l 9 n F
w o n m ) d 9 m l l d l l m n
l o n m o E n o m d j n d l o F o @ o A m
n X g z o n r w v n S H m n D h l o z o o
o m m l m n l f D F h o m D l l l D
n o o n d m o n n d o F
g 9 n l n l m d o l o o n o m m n o n X C e
l i v r e e s t d e s t i n a u x p e r s o n n e s a y a n t d j u n e b o n n e e x p r i e n c e e n p r o g r a m m a t i o n F
d n F s l 0 d o l 9 d d n o m m m o F t
o l l l l j n d 9 n o n F n F n o
n F t 9 m n d l 9 d n X o n d o m m D l d j
o o m m F
r o d n o l j o n D j n d m m n
l o d o l D m l n l l o d l o F t l n d
o m m X 9 j 9 d m j 9 o l l F w
n l l n n d l l m o l d D j 9 ( n m 9 o
d n n o n X n m l l 9 n l l o n d 9 n l o l
d l o d D d o d o n l o n D n d n 9
m n n m o m o n l o l o n d l d ( n l ( n 3
v l D m l m l l o l 9 o n o p l u s c l a i r e t p l u s
s i m p l e F t 9 d o n n d o m l m o n m l t e l q u e j ' a u r a i s s o u h a i t
l e l i r e n n m o n m F
7/30/2019 Apprenez a Programmer en c 2e Edition
7/545
C H A P I T R E 0 . A V A N T - P R O P O S
Q u ' e s t - c e q u e c e l i v r e v o u s p r o p o s e ?
f n d n n o n o l d l d o n d m o F h n n E
l l d m D j 9 d d d 9 n n n n o m j 9 o
d l n g d n l 9 n n m n F
o m 9 m n o n n l n d o d d n D o
o n F g l E o n d o o z d n o X
I F L e s b a s e s d e l a p r o g r a m m a t i o n e n C X n o d m o n n d o n
d o n 9 l o m m o n o l l n g l 9 o j
d l F x o n l l o n l o l n o m m d
o m d 9 l o o n X n d o D w y o v n F x o l o n
n o m o m m m l o o n n l n n j
d l ( n d F
P F T e c h n i q u e s a v a n c e s d u l a n g a g e C X n o d o n d o n l
n l o m l d g F g E D n d 9 n n l l D o n
n d n l l o n n o m n o n d l n X o n D l D E
D n d D F v n o m l o d m n E
d l d 9 n o n d o d o n d D o z E n
m l m n n F
Q F C r a t i o n d e j e u x 2 D e n S D L X o l 9 n l d o n n n
n o o m m n g D l n o o l d n o m n n
n o E m m d o m m o m l l d j d l d o F
o n D n o l o n n n o n d l n g l 9 o n l l
l h v F
R F L e s s t r u c t u r e s d e d o n n e s X o l l l l o n D n o d o o n d m E
o d d o m m o n ( d n d n F x o m n l E
o n d d o n n n m m o l 9 d d o n n l n l l n D
o m d 9 m n n 0 l o o l z o
o m m F
C o m m e n t l i r e c e l i v r e ?
S u i v e z l ' o r d r e d e s c h a p i t r e s
v z l o m m o n l n o m n F s l o n d o n F
g o n m n o d l n o l o n d l n d o n l
d n D l o m n o m m n d d l 9 o d d
o D m o n o n o z d j n m n F
7/30/2019 Apprenez a Programmer en c 2e Edition
8/545
C O M M E N T L I R E C E L I V R E ?
P r a t i q u e z e n m m e t e m p s
z l m n F x 9 n d z d 9 o ( n l l d l o l l m
o o d n o o F
v l o m o l F F
1
o n n o o o m m n
n n d o n n F g 9 n D m n o n o n n z F i z l
o d o j o o o o l o n d o F w o d ( z E l n o D
d l n l j 9 o n l 9 F n o l F F m n D z d
l l m l o o n n l l o n l F o
o z n o l o n l 9 m n z F
U t i l i s e z l e s c o d e s w e b !
e ( n d d d o d o n l D l E o o o 9 o n
l l d o d F g o n d o d T ' n n d
d o o o m m n d n n o n o
l 9 d F
o l l o d D n d z E o l n
2
X
h t t p :/ / w w w . s i t e d u z e r o . c o m / c o d e w e b . h t m l
n o m l o n n o o d F p n m l o d
E d o X
l o d
g o d X I P Q R S T
g o d o n d n X
! o l l o d o n l d n l D o d 9 o
o n o d n l o n Y
! o d l n o l o n d o F
g m d d o n n o m d n j o l l o z n l
m n n o z o n d 9 m m n n o l l d o n F
n n d 9 d D n o m o d ( o n l d o n m l o d
l l m m F n d D n o o d o n n
d d o l n 9 o o o n n l n F
i n l D 9 n m o n d n o d l n n d o n o
z o o 3
1 . T r a v a u x P r a t i q u e s
2 . J e v o u s s u g g r e d ' a i l l e u r s d e l ' a j o u t e r v o s f a v o r i s .
http://www.siteduzero.com/codeweb/1234567/30/2019 Apprenez a Programmer en c 2e Edition
9/545
C H A P I T R E 0 . A V A N T - P R O P O S
D u S i t e d u Z r o a u L i v r e d u Z r o
l 9 o o j 9 o d m m o o d n D m o n m
) d n 9 o m o l m o n l l m l d l
m
3
F s l d d l 9 l l l d o F F F 9 o n
n d o d z o F
n m o n l l o o l l D m o d m o E
o n d o n D w w w . s i t e d u z e r o . c o m 9 ( l d n n n l n o m
l F l o n j 9 ( n d o 9 l o n n o m m n d
d o n n o m D m l o m m o d o l
l 3
v 9 o m n d l o d n l 9 n d o n l n o
d n F s l o j o d 9 l d I U H H H H m m o m d l n n
9 n d n l o m m n n n l d o n d o d
o n d n F v l o n n n l l l j 9 j m
X m l l d l d n n o o n o F
g l l o n m j o n o o D d n l o j 9
m o E m m d F v v d o l m o n d l d o l l o l F
l ' a t t e n t i o n d e c e u x q u i n e c o n n a i s s e n t p a s l e S i t e d u Z r o
o n d d d o
4
D o o d m n d z j
l o o F
g o m m o l 9 z n d o o m D l n o d n d n F
o o z n n m o n o o m o z d j d l 9 n n
o m m o n d n d 9 l n o o z d o l g F
o l n o o n o n n o d m d n l o m m o n o n d l l D
n l n l m l d ( n o n o F v o d 9 l l E
l m n o n n m o m m o o z l o n F
v z l m o d d o o z o m n z 9 d F
v l o m n l l m n d o l l m n o d n
5
F t m
d o l o l X d l 9 n l l o n d l o l n o
o m m l 9 l o n d o m m n d m n d d o m m D
n n l o n l l o n n o o n n d m F
o n o z j m 9 m o j o l m o n n F g 9 m o n d F
s m n z d 9 n n m n n o o m m o m o d n l m m l l
j o o F t o l d m n j o n d o o n n
3 . E t a l ' e s t d ' a i l l e u r s t o u j o u r s , c ' e s t a m u s a n t d e v o i r q u e c e l a n ' a p a s c h a n g . L e W e b e s t p l u s
q u e j a m a i s u n f o r m i d a b l e e s p a c e d ' e x p r e s s i o n e t d o i t l e r e s t e r .
4 . Q u e l ' o n a p p e l l e d ' a i l l e u r s l e s Z r o s , s e l o n u n e l o g i q u e i m p l a c a b l e q u i n e v o u s a u r a p a s
c h a p p . ; - )
5 . C e n ' e s t p a s u n e p l a i s a n t e r i e , c ' e s t l a r a i s o n d ' t r e d e c e l i v r e e t c ' e s t p o u r c e l a q u ' o n l ' a p p e l l e
l e L i v r e d u Z r o .
7/30/2019 Apprenez a Programmer en c 2e Edition
10/545
R E M E R C I E M E N T S
n d n l m d o l d l n F
l ' a t t e n t i o n d e s v i s i t e u r s d u S i t e d u Z r o
g l n m l l d o F s l l c o m p l t e F
i n D l o n d n o n l 9 o n m 9 o n o X o o n o E o n
o n l c F y 9 D o o c
d l n l n 9 m o F e ( n d 9 o l m m m d
l d 9 n d n d n D j o l 9 d d l F s l l l d
m o n m 9 j o d 9 o F
g l 9 d o o z m l o d d o m X
! l l n o Y
! o z o n d 9 n o o l n o o z m o o o o l z Y
! o z n m m l n n d d o o E m m m o
m m n d n l Y
! o o z o m l m n o o o n o n D ( n d n o
d ( n n o n d l o m n l d o n d n o o F
o o z l o d o m m o n n g d n n d o n o D
d n o l l m n d o F v l o m o n d
n d o m o n d 9 l l n o l l o n d 9 l o d n o l l o
d n o d o d l o m m o n F
R e m e r c i e m e n t s
g l n 9 l d 9 n l m m o n n F s l n 9 n j m
l j o n d n o m o n n m 9 o n o l o n o l d F
! w n o d 9 o d D m 9 o n o j o n o o n l l n d j 9 n
l l o n F
! l o d D m d l n n o j o o l
m o j o m 9 d n F
! h D m o n o D l 9 o n d o l o n d o n n d d o
l 9 o n o n n j o d 9 n l n d l o m n d n o F
v d o o n 9 l o l n n d l n 0 m m n
l F
! x w n v @ z H A j 9 d l o n n n o n o n
v
A
i
D l l n d n l l l
6
D n l l n g D o n
d o m n d d l o n F
! w o m d o ( i l e o @ e A o l 9 d 9 l m 9 o n o m
j o l l o n d p w y h p w y h i F
! x o n o D p n t o n D o l o l n d l F
6 . E h o u i , m m e c e l i v r e e s t c o m p i l , o n n e s e r e f a i t p a s . : - )
7/30/2019 Apprenez a Programmer en c 2e Edition
11/545
C H A P I T R E 0 . A V A N T - P R O P O S
! v 9 d z g o D d o n n d l n n d o
o n d l o n m l o d d o o n n l
o m d l d d 9 0 o l l @ l l o
3 A F t n m n l l n o o n
d l l d l X l v n @ l o A D v o v f o n @ p l d A D w n
l d @ h t p o A D q l l m q l l @ q l l m A v o o @ x l A F
! v 9 d d o D D n F v d o o n l
n m l F d n l o m l d m m d l 9 n
o l o n D m l o n o n n o n 9 l o n F Y E A
! i n ( n o D o n o o n o n ( n n o o n n o
o n n X l d d o
7
F i o n n o n o m
o l D m 9 l n l o n l n o m n o n l
m o d l o n d l F
w o n ( n D o z n o o n ( n n l n l F t o
o n o n n l l D o n 9 o l z d 9 n d d l 3
7 . I l e s t i n t r e s s a n t d e n o t e r q u e t o u t e s l e s p e r s o n n e s l i s t e s p r c d e m m e n t e n f o n t p a r t i e !
7/30/2019 Apprenez a Programmer en c 2e Edition
12/545
S o m m a i r e
A v a n t - p r o p o s i
9 E l o o o c F F F F F F F F F F F F F F F F F F F F F F F
g o m m n l l c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F
h d o v d o F F F F F F F F F F F F F F F F F F F F F F F F F
m m n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F
I L e s b a s e s d e l a p r o g r a m m a t i o n e n C 1
1 V o u s a v e z d i t p r o g r a m m e r ? 3
o m m D 9 o c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R
o m m D d n l l n c F F F F F F F F F F F F F F F F F F F F F F F F F S
o m m D 9 d c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W
2 A y e z l e s b o n s o u t i l s ! 1 1
v o l n o m m F F F F F F F F F F F F F F F F F F F F F F I P
g o d : :
f l o k @ n d o D w y D v n A F F F F F F F F F F F F F F F F F F F F I Q
l g C C @ n d o l m n A F F F F F F F F F F F F F F F F F F F F F F F F I W
o d @ w y l m n A F F F F F F F F F F F F F F F F F F F F F F F F F F F F P S
3 V o t r e p r e m i e r p r o g r a m m e 3 1
g o n o l o n c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q P
n m n m m d o d F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q R
n m l 9 n F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q W
7/30/2019 Apprenez a Programmer en c 2e Edition
13/545
S O M M A I R E
v o m m n D 9 l 3 F F F F F F F F F F F F F F F F F F F F F F F F R Q
4 U n m o n d e d e v a r i a b l e s 4 7
n ' d m m o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R V
h l n l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F S P
e 0 l o n n d 9 n l F F F F F F F F F F F F F F F F F F F F F F F F F S W
n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F T I
5 U n e b t e d e c a l c u l 6 5
v l l d F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F T T
v o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F U H
v l o m m F F F F F F F F F F F F F F F F F F F F F F F F F F U P
6 L e s c o n d i t i o n s 7 7
v o n d o n i f . . . e l s e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F U V
v o o l n D l o d o n d o n F F F F F F F F F F F F F F F F F F F F F F F V R
v o n d o n s w i t c h F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F V U
v n X d o n d o n o n d n F F F F F F F F F F F F F F F F F F F F F W I
7 L e s b o u c l e s 9 3
9 E 9 n o l c F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W R
v o l w h i l e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W R
v o l d o . . . w h i l e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W U
v o l f o r F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W V
8 T P : P l u s o u M o i n s , v o t r e p r e m i e r j e u 1 0 1
o n l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I H P
g o o n 3 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I H R
s d d 9 m l o o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I H U
9 L e s f o n c t i o n s 1 0 9
g l n o n o n F F F F F F F F F F F F F F F F F F F F F F F F F F F I I H
h m l o n o m n d F F F F F F F F F F F F F F F F F F F F F F F I I V
7/30/2019 Apprenez a Programmer en c 2e Edition
14/545
S O M M A I R E
I I T e c h n i q u e s a v a n c e s d u l a n g a g e C 1 2 5
1 0 L a p r o g r a m m a t i o n m o d u l a i r e 1 2 7
v o o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I P V
v d F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I Q H
v o m l o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I Q S
v o d o n o n d l F F F F F F F F F F F F F F F F F F F F F I Q V
1 1 l ' a s s a u t d e s p o i n t e u r s 1 4 3
n o l m n n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F I R R
v m m o D n o n d 9 d F F F F F F F F F F F F F F F F F F F F F F F I R T
l d o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I R W
i n o n o n n o n o n F F F F F F F F F F F F F F F F F F F F F F F F I S R
d X n o l m n n n c F F F F F F F F F F F F F F F F F F F I S U
1 2 L e s t a b l e a u x 1 6 1
v l d n l m m o F F F F F F F F F F F F F F F F F F F F F F F F F F F I T P
h ( n n l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I T P
o n l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I T S
d l n o n o n F F F F F F F F F F F F F F F F F F F F F F F F I T U
1 3 L e s c h a n e s d e c a r a c t r e s 1 7 1
v c h a r F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I U P
v n o n d l d c h a r F F F F F F F F F F F F F F F F F F F F F F I U R
p o n o n d m n l o n d n F F F F F F F F F F F F F F F F F F F F F F I U V
1 4 L e p r p r o c e s s e u r 1 9 1
v i n c l u d e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I W P
v d e f i n e F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I W Q
v m o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F I W U
v o n d o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P H H
1 5 C r e z v o s p r o p r e s t y p e s d e v a r i a b l e s 2 0 5
h ( n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P H T
l o n d 9 n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P H V
o n d F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P I P
7/30/2019 Apprenez a Programmer en c 2e Edition
15/545
S O M M A I R E
v n m o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P I S
1 6 L i r e e t c r i r e d a n s d e s c h i e r s 2 1 9
y m n ( F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P P H
h ' n m o d d l G F F F F F F F F F F F F F F F F F F F F P P U
d l d n n ( F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P Q S
n o m m m n ( F F F F F F F F F F F F F F F F F F F F F F F F P Q U
1 7 L ' a l l o c a t i o n d y n a m i q u e 2 3 9
v l l d l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P R H
e l l o o n d m m o d n m F F F F F F F F F F F F F F F F F F F F F F F F P R R
e l l o o n d n m d 9 n l F F F F F F F F F F F F F F F F F F F F F F F F P R W
1 8 T P : r a l i s a t i o n d ' u n P e n d u 2 5 3
v o n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P S R
v o l o n @ I X l o d d j A F F F F F F F F F F F F F F F F F F F F F F F F F F P T H
v o l o n @ P X l o n d d o n n A F F F F F F F F F F F F F F F F F F F F P T S
s d d 9 m l o o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F P U T
1 9 L a s a i s i e d e t e x t e s c u r i s e 2 7 9
v l m d l o n o n s c a n f F F F F F F F F F F F F F F F F F F F F F F F F F F P V H
n n d F F F F F F F F F F F F F F F F F F F F F F F F P V Q
g o n l n n n o m F F F F F F F F F F F F F F F F F F F F F F F F F F F P W H
I I I C r a t i o n d e j e u x 2 D e n S D L 2 9 3
2 0 I n s t a l l a t i o n d e l a S D L 2 9 5
o o o o l h v c F F F F F F F F F F F F F F F F F F F F F F F F F F F P W T
l m n d l h v F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q H H
g n o j h v F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q H I
2 1 C r a t i o n d ' u n e f e n t r e e t d e s u r f a c e s 3 1 5
g l h v F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q I T
y d 9 n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q P H
w n l o n d F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q P U
i X n d d F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q Q U
7/30/2019 Apprenez a Programmer en c 2e Edition
16/545
S O M M A I R E
2 2 A c h e r d e s i m a g e s 3 4 3
g n m f w F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q R R
q o n d l n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q R V
g l d o m d 9 m S D L _ I m a g e F F F F F F F F F F F F F F F F Q S P
2 3 L a g e s t i o n d e s v n e m e n t s 3 6 1
v n d n m n F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q T P
v l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q T U
i X d o z o l F F F F F F F F F F F F F F F F F F F F F F F F F Q U H
v o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q U V
v n m n d l n F F F F F F F F F F F F F F F F F F F F F F F F F F F Q V P
2 4 T P : M a r i o S o k o b a n 3 8 7
g d d o k o n F F F F F F F F F F F F F F F F F F F F F F F F F F Q V V
v m a i n l o n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q W I
v j F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F Q W T
g m n n m n d n F F F F F F F F F F F F F F F F F F F F R I H
v 9 d d n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R I P
m m l o o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R I V
2 5 M a t r i s e z l e t e m p s ! 4 2 3
v D e l a y l t i c k s F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R P R
v t i m e r s F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R Q P
2 6 c r i r e d u t e x t e a v e c S D L _ t t f 4 3 7
s n l l S D L _ t t f F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R Q V
g m n d S D L _ t t f F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R R H
v d ' n m o d d 9 F F F F F F F F F F F F F F F F F F F F F F F F R R Q
2 7 J o u e r d u s o n a v e c F M O D 4 5 5
s n l l p w y h F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R S T
s n l l n o j m F F F F F F F F F F F F F F F F F F F F F F F R S V
v o n o F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R T H
v m @ w Q D y q q D w e F F F A F F F F F F F F F F F F F F F F F F F F F F R T U
2 8 T P : v i s u a l i s a t i o n s p e c t r a l e d u s o n 4 7 5
7/30/2019 Apprenez a Programmer en c 2e Edition
17/545
S O M M A I R E
v o n n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R U T
v o l o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R V I
s d d 9 m l o o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F R V U
I V L e s s t r u c t u r e s d e d o n n e s 4 8 9
2 9 L e s l i s t e s c h a n e s 4 9 1
n o n d 9 n l n F F F F F F F F F F F F F F F F F F F F F F F F R W P
g o n o n d 9 n l n F F F F F F F F F F F F F F F F F F F F F F F F F F R W Q
v o n o n d o n d l l F F F F F F F F F F F F F F F F F F F F F F F F R W T
e l l l l o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F S H I
3 0 L e s p i l e s e t l e s l e s 5 0 3
v l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F S H R
v ( l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F S I I
3 1 L e s t a b l e s d e h a c h a g e 5 1 7
o o l n l d c F F F F F F F F F F F F F F F F F F F F F S I V
9 E 9 n l d c F F F F F F F F F F F F F F F F F F F F F F F F S I V
n o n o n d F F F F F F F F F F F F F F F F F F F F F F F F F F S P H
q l o l l o n F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F S P P
7/30/2019 Apprenez a Programmer en c 2e Edition
18/545
P r e m i r e p a r t i e
L e s b a s e s d e l a p r o g r a m m a t i o n
e n C
I
7/30/2019 Apprenez a Programmer en c 2e Edition
19/545
7/30/2019 Apprenez a Programmer en c 2e Edition
20/545
Chapitre1
V o u s a v e z d i t p r o g r a m m e r ?
D i c u l t :
V
o u s a v e z d j e n t e n d u p a r l e r d e p r o g r a m m a t i o n e t n u l d o u t e q u e s i v o u s a v e z c e
l i v r e e n t r e l e s m a i n s , c ' e s t p a r c e q u e v o u s v o u l e z e n n c o m p r e n d r e c o m m e n t a
f o n c t i o n n e .
M a i s p r o g r a m m e r e n l a n g a g e C . . . a v e u t d i r e q u o i ? E s t - c e q u e c ' e s t b i e n p o u r c o m -
m e n c e r ? E s t - c e q u e v o u s a v e z l e n i v e a u p o u r p r o g r a m m e r ? E s t - c e q u ' o n p e u t t o u t f a i r e
a v e c ?
C e c h a p i t r e a p o u r b u t d e r p o n d r e t o u t e s c e s q u e s t i o n s a p p a r e m m e n t b t e s e t p o u r t a n t
t r s i m p o r t a n t e s . G r c e c e s q u e s t i o n s s i m p l e s , v o u s s a u r e z l a n d e c e p r e m i e r c h a p i t r e
c e q u i v o u s a t t e n d . C ' e s t q u a n d m m e m i e u x d e s a v o i r q u o i s e r t c e q u e v o u s a l l e z
a p p r e n d r e , v o u s n e t r o u v e z p a s ?
Q
7/30/2019 Apprenez a Programmer en c 2e Edition
21/545
C H A P I T R E 1 . V O U S A V E Z D I T P R O G R A M M E R ?
P r o g r a m m e r , c ' e s t q u o i ?
y n o m m n l o n l l m l o D l l d o l
o n F o z l 9 m o n d d j o o D j o o n l l
d l n d m m D n o d m l 3 t d z o o o D
d o n j d o o n d l o n X
Q u e s i g n i e l e m o t p r o g r a m m e r ?
o m m n ( l d o m m n o m F v o m m d E
m n d n l 9 o d n d 9 ' d o n F
o o d n m l d o m m n o n X
! l l l n o m m Y
! o m n d n o m m Y
! o l o l d n o m m Y
! l j d o o n d o m m @ F ( F I F I D l l j r l E v P A F
F i g u r e I F I ! v j r l E v P o m m n g C C D n l n o n d g
i n D l o m m o n o m n d o o n 9 m o
o n o d n F o o z n n n l o l d o l o n n
o n D o l n j d o m n Q h s n n D m o F o
o d n o @ l D m j 9 l l A F
e n o n 3 t n 9 d l n j d o n l n d d o F t 9
m l m n d o l o l D m o z d m n d o
d l F
R
7/30/2019 Apprenez a Programmer en c 2e Edition
22/545
P R O G R A M M E R , D A N S Q U E L L A N G A G E ?
g o m m o d z D n o n 9 l l o n o m m n n l n n j Q h F g
d F x o l l o n d o d o m m m l F n d E
m o n o o n c o m m e n t a c h e r u n m e s s a g e l ' c r a n F y D j D
n 9 n d n n d n D m n o z E m o D n 9 l
n l 9 F
m o n n m o n l m D m o n n d o l F D
o n d z 0 m m n d o o o m m n l d o m m
d l n l o m l F v d o o o z l d o n
o d n n 9 m o l o m m n g F
w n z D D o z 9 o D m l n g c
P r o g r a m m e r , d a n s q u e l l a n g a g e ?
o o d n n m n z D 9 l m o n l 9 o n d F y n n
9 d l 9 n l n o n d H d I F e n D j d p l
l l Q C S n l n n o m D o d o n n l o o m m
1
X
0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0
g o o z l D 9 l l n n o m d o o d n D l l a n g a g e
b i n a i r e @ n z n m o 3 A F o o d n n o n n l n E l D
o m m o o z l o n D 9 o l m n n o m n l F
h o n o l n o m o l m X
C o m m e n t p a r l e r l ' o r d i n a t e u r p l u s s i m p l e m e n t q u ' e n b i n a i r e a v e c d e s 0 e t
d e s 1 ?
o o d n n l l 9 n l n o m o n l n F o n D l
n o n l d 9 n o m m n l n n F w m l n o m n l
l o n l o n D 9 o d 3
i n l 9 d l n o m n o n D 9 d 9 n n d n o l n
n n d n n o l 9 o d n F v l d D 9
d l l o m m l d o n F r m n D o m m
d j d n o m n n o n 9 o n l @ o 3 A F y n
o n 9 n o d o m m X F a i s l e c a l c u l 3 + 5
o n d l o m m d d o n n l o o m m X
0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 F
v m I F P m j n d o l F
1 . J ' i n v e n t e , j e n e c o n n a i s q u a n d m m e p a s l a t r a d u c t i o n i n f o r m a t i q u e p a r c u r .
S
7/30/2019 Apprenez a Programmer en c 2e Edition
23/545
C H A P I T R E 1 . V O U S A V E Z D I T P R O G R A M M E R ?
F i g u r e I F P ! m @ m l ( A d l o n d 9 n o m m
U n p e u d e v o c a b u l a i r e
v j 9 l d m o m l D m l o 9 n n o m l
n m o o n d o E l F o l o n d o D o l l z d 9 l l
n d l n o l o F x o n l m n o z l 9 d o
d o o l z D m n j o @ A o d z l n
o m m D o z o o m n d
2
F
n o n l m l 9 o n n d o F v m o o m m
d n n l n m l ( F g m l n m l ( l n
l a n g a g e d e h a u t n i v e a u F s l l n d l n F l n l n
n D l l o d o l n @ o m m l n A F n l n d
n d o n l l D m l l d o m m
n o l o n l d F
s l d n o m l n d l o m o n n n n o m d n
l l o o z o o m m F i n o l E n m l X
! l g Y
! l g C C Y
! t Y
! l f Y
! h l Y
! F
x o z j n l l n d l n D n 9 l l z d o n o
m n l m d l l l l l d n o l 9 n F g o n
j l m l
3
F
g n d l n o n l n d 9 @ d o n n o n
l l l A F y n o n o m m n n l l o n d ' n l
l n g d l n g C C F
n m o d o l n c o d e s o u r c e F g 9 o n l l l o d
o D 9 o m l m n l o d d o o m m d n n l n d
n F g 9 d o n o z l o d o D n d n
2 . C e r t e s , l e s g e n s a u t o u r d e v o u s v o u s r e g a r d e r o n t c o m m e s i v o u s t i e z d e s e x t r a - t e r r e s t r e s , m a i s
a i l n e f a u d r a p a s y f a i r e a t t e n t i o n !
3 . D ' a v a n c e d s o l p o u r t o u s l e s a u t r e s l a n g a g e s q u i e x i s t e n t , m a i s f a i r e u n e l i s t e c o m p l t e s e r a i t
v r a i m e n t t r o p l o n g !
T
7/30/2019 Apprenez a Programmer en c 2e Edition
24/545
P R O G R A M M E R , D A N S Q U E L L A N G A G E ?
n F
n o n E n j m n o m m d d o n d n o l n d
n @ o m m l g o l g C C A n n F g o m m n n o m X o n l 9 l l l e
c o m p i l a t e u r F v d o n D l l D 9 l l l a c o m p i l a t i o n F
m o n X l n o m l d ' n o l n d n F
g 9 d 9 l l o l o X l l n n d ' n D o n n d l
g C C d l m m m n 9 o n d l h l F
V o u s v e r r e z p a r l a s u i t e q u e m m e p o u r l e l a n g a g e C i l e x i s t e p l u s i e u r s c o m -
p i l a t e u r s d i r e n t s ! I l y a l e c o m p i l a t e u r c r i t p a r M i c r o s o f t , l e c o m p i l a t e u r
G N U , e t c . O n v e r r a t o u t c e l a d a n s l e c h a p i t r e s u i v a n t . H e u r e u s e m e n t , c e s
c o m p i l a t e u r s - l s o n t q u a s i m e n t i d e n t i q u e s ( m m e s ' i l y a p a r f o i s q u e l q u e s
l g r e s d i r e n c e s q u e n o u s a p p r e n d r o n s r e c o n n a t r e ) .
i n ( n D l o m m n l o m l l l ' e x c u t a b l e F g 9
d 9 l l o o n l o m m @ o d m o n o n d o A o n
l 9 n o n F o m m i i l F
n o n n o m d n D l o n o d m o o d d 9 n E
o m n @ ( F I F Q A F
F i g u r e I F Q ! v m m m D l o n o l
P o u r q u o i c h o i s i r d ' a p p r e n d r e l e C ?
g o m m j o l 9 d l D l d n o m l n d n F
h o E o n o m m n l 9 n d 9 n n l c q n d o n F
o n D l n n o D o m m n l o m m o n n m o m n o
n F i l D o z n l o n X
! u n l a n g a g e t r s h a u t n i v e a u X 9 l l D l n d l F m
D o n o m o n D D l f n d 9 F g l n m n
d 9 d o m m l d m n D n l n l F s l n n o o
d 9 o m n d ( o 9 l n 9 @ o m m n n E
A Y
! u n l a n g a g e u n p e u p l u s b a s n i v e a u @ m o n d m m 3 A X l o n
E n l d 0 l D m n l n o m m l g D o l l z
n n d o l l o m m o n l o n o n n m n d o
U
7/30/2019 Apprenez a Programmer en c 2e Edition
25/545
C H A P I T R E 1 . V O U S A V E Z D I T P R O G R A M M E R ?
o d n F o z n l m n l d 9 n d n l n d
o m m o n o l d z F o z d o n l o n o m F l l D l g
n l n o l F s l l o o m m n n d d
l o l o o n n z F
i n ( n D l l n g n d l n l l o n n l l l n F
s l n 9 l o n n l o d 9 d n n o m F
o l l o n m 9 n n o n d l l n g l 9 n
4
F t
n d 9 l f a u t o m m n D m j o d l 9 n o n o
o d o n n d o l d o n n n F
t o o l o n d o 9 o m l n d o m E
m o n D o n 9 z j m d o m m o n n F d D o z
d j n o m m D n o o d m l d n d z o F
I l y a q u e l q u e c h o s e q u e j e n e c o m p r e n d s p a s . . . Q u e l l e e s t l a d i r e n c e e n t r e
l e l a n g a g e C e t c e t a u t r e l a n g a g e d o n t o n p a r l e , l e l a n g a g e C + + ?
v l n g l l n g C C o n m l F s l o n o l d o j o
l F o n o m n d o m m n l o n n D l n d 9 o F
! e o d D l 9 o o l o d n n d o n n n l l l
d o m o n D o n o m m n n n n l n d o m m o n l
l ' A l g o l F
! v o o l n D o n n n o l n l l C P L D o l l E
m m n B C P L D n l n o m d l a n g a g e B F
! n j o D o n n n l n n o D 9 o n l F F F
l l a n g a g e C F g l n D 9 l l m o d ( o n D n o n d l
l j o d 9 F
! n l d D o n o o d 9 j o d o l n g F n o d 9 m l o E
o n o o l z F g n o l n D l 9 o n l g C C D n m n
l g F L e l a n g a g e C + + n 9 n n d 9 l l n g d
j o m n d o m m d 9 n o n d ' n F
Q u ' i l n ' y a i t p a s d e m a l e n t e n d u s : l e l a n g a g e C + + n ' e s t p a s m e i l l e u r
q u e l e l a n g a g e C , i l p e r m e t j u s t e d e p r o g r a m m e r d i r e m m e n t . D i s o n s a u s s i
q u ' i l p e r m e t a u n a l d e p r o g r a m m e r u n p e u p l u s e c a c e m e n t e t d e m i e u x
h i r a r c h i s e r l e c o d e d e s o n p r o g r a m m e . M a l g r t o u t , i l r e s s e m b l e b e a u c o u p
a u C . S i v o u s v o u l e z p a s s e r a u C + + p a r l a s u i t e , c e l a v o u s s e r a f a c i l e .
g n 9 e l g C C n o l o n d g 9 l o l m n
d g C C o l d o m m F v l n g n 9 n l n
o l X o n D l n o l j o d 9 F s l l d l
n d m d 9 l o o n l n @ d o n v n w y A o n d o F
4 . O n p o u r r a i t c i t e r d ' a u t r e s r a i s o n s : c e r t a i n s l a n g a g e s d e p r o g r a m m a t i o n s o n t p l u s d e s t i n s a u
W e b ( c o m m e P H P ) q u ' l a r a l i s a t i o n d e p r o g r a m m e s i n f o r m a t i q u e s .
V
7/30/2019 Apprenez a Programmer en c 2e Edition
26/545
P R O G R A M M E R , C ' E S T D U R ?
R e t e n e z d o n c X l g l g C C n o n d l n o n n D o n
n d o l 9 n 9 l 9 F g o n j d m n d o m m
z d ' n F
P r o g r a m m e r , c ' e s t d u r ?
o l n o n d o n o o l 9 F e l o X E l n E
m m n I H n d 9 d o o o o m m n l o E
m m o n c
v o n D j o D n o n F x o n D n E n n m n 9 n E
F i n o o z o n d o n n D o n l o o n
d X
! l 9 d d o n Y
! l o o n Y
! l m l l o n Y
! l d o n F
g n 9 o n m d n D o z 3 t o l d n n o n
o m m n l 9 o d n l o o n d d n o o m m F
f D n m D l n 9 d d 0 l n m o n l F i n D o d n d d
o m m o l l z l X o d z n l o l d D l o
o D l o d o n n d o n m F o d z n o m m
d l Q h D o D l o d l o n n n n o m d l 9 F
g l F w o n d l l n g l E m m D o n 9 z
o n d o n n n o n n o o F
M a i s a l o r s , o e s t l e p i g e ? O e s t l a d i c u l t ?
s l o o m m n n o d n o n o n n o o m n d 9 o n n g F
h o n d E l D z E o D j o n d o m F
x o z 9 n o m m n l o m m X
! l a p a t i e n c e X n o m m n m j m d m o D l o E
3
! l e s e n s d e l a l o g i q u e X o n d 9 o n m D m n o
m d 9 o ) F h o l o n n l l o m
o n ' o 3
! l e c a l m e X n o n D o n n o n o d n n m F g n 9
m o o m m F
i n D o m l D l n 9 d l o n n n o
o m m F n n l n m 9 n o n o l m D l o d 9 o l
n d ) F s l n d 9 l l o d o n 9 l d o n 3
W
7/30/2019 Apprenez a Programmer en c 2e Edition
27/545
C H A P I T R E 1 . V O U S A V E Z D I T P R O G R A M M E R ?
E n r s u m
! o l d o m m n o m D o n d o d n n l a n g a g e
l 9 o d n o m n d F
! s l d n o m l n n o m l 9 o n l n F v
l n d d n o n o l l m d m n
o n d 9 n d o m n d n l o m m ( n l F
! v l a n g a g e C n o l l o n d d n l o n d o m m n d
n F g 9 n d l n d o m m o n l l l l l l
m o n d F
! v c o d e s o u r c e n d 9 n o n d n n l n n o m F
! v c o m p i l a t e u r n o m m n o m o o d o n c o d e b i -
n a i r e D l o o o F v . e x e l 9 o n o n n
o n d o m m n D l n 9 l d o d o l 9 n F
! v o m m o n n n l l E m m d o n n n m m
o
5
Y n n m o n D l n d 9 o n o n n d l l o d 9
m o d F
5 . S a u f d a n s q u e l q u e s c a s p r c i s o v o t r e a p p l i c a t i o n d o i t f a i r e a p p e l d e s f o r m u l e s m a t h m a t i q u e s ,
c o m m e c ' e s t l e c a s d e s l o g i c i e l s d e c r y p t a g e .
I H
7/30/2019 Apprenez a Programmer en c 2e Edition
28/545
Chapitre2
A y e z l e s b o n s o u t i l s !
D i c u l t :
A
p r s u n p r e m i e r c h a p i t r e p l u t t i n t r o d u c t i f , n o u s c o m m e n o n s e n t r e r d a n s l e v i f d u
s u j e t . N o u s a l l o n s r p o n d r e l a q u e s t i o n s u i v a n t e : D e q u e l s l o g i c i e l s a - t - o n b e s o i n
p o u r p r o g r a m m e r ? .
I l n ' y a u r a r i e n d e d i c i l e f a i r e d a n s c e c h a p i t r e , o n v a p r e n d r e l e t e m p s d e s e f a m i l i a r i s e r
a v e c d e n o u v e a u x l o g i c i e l s .
P r o t e z - e n ! D a n s l e c h a p i t r e s u i v a n t , n o u s c o m m e n c e r o n s v r a i m e n t p r o g r a m m e r e t i l n e
s e r a p l u s l ' h e u r e d e f a i r e l a s i e s t e !
I I
7/30/2019 Apprenez a Programmer en c 2e Edition
29/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
L e s o u t i l s n c e s s a i r e s a u p r o g r a m m e u r
e l o o D d l o l n o m m E E l o n c o z n E
m n l d n D o d z n o n n m o n n 3
o o z d o j l c F F F m n c
i o D l 9 d c o m p i l a t e u r D m o m m m d d o
l n g n l n n 3
g o m m j o l 9 d j n d d n l m D l l
o m l o l l n g F x o l l o n o l o d o m l n
o m l d n n o F
f o n D d o d 9 E E o n o n c t n o l d n l l o n m F
o l m n m m o n o m m X
! u n d i t e u r d e t e x t e o l o d o d o m m F i n o n l o l
o m m l f l o E n o o n d o D o v i o v n l 9 ' F v 9 d l D 9
d 9 o n d d n l l n o l o o l l o d D o m
d o n l l m n Y
! u n c o m p i l a t e u r o n o m @ o m l A o o n n Y
! u n d b o g u e u r o o d l d n o o m m
1
F
e o D o n D o o z o d d o F w o n D j
n m m n o n d z n o o n F Y E A
d m n n n o n d o l X
! o o n n d o o m m s p a r m e n t F g 9 l m o d
l l o m l D m l l o n o n n F o v n n l D o n n o m d
o m m n l o o m m m n F t n d l l
m o d D j l o l d l m o d m l Y
! o o n l n o m m o E n E n @ o m m l l d l l D o D o A
o m n d d D o m l d o F g o m m o E n E
n o n l I D E
2
D o n o i n o n n m n d d l o m n F
s l l n o n n m n d d l o m n F e d D o z E
n d m l o l o l F n o n o X o o z
l n 9 m o l d o m m D l o l 9 s h i o o z F
C h o i s i s s e z v o t r e I D E
s l m 9 m l n n d o m o n l s h i m l l o n n F o
o n d o n l m n F o n n l l m n D j n n n o E l
j 9 l l 9 s h i m l l o n l j o F
! n d s h i j 9 l l C o d e : :B l o c k s F s l o n o n n
l l d m d 9 l o o n F t o n l l d 9 l l E o d @
1 . O n n ' a m a l h e u r e u s e m e n t p a s e n c o r e i n v e n t l e c o r r e c t e u r q u i c o r r i g e r a i t t o u t s e u l n o s e r r e u r s .
C e c i d i t , q u a n d o n s a i t b i e n s e s e r v i r d u d b o g u e u r , o n p e u t f a c i l e m e n t r e t r o u v e r s e s e r r e u r s !
2 . I n t e g r a t e d D e v e l o p m e n t E n v i r o n m e n t
I P
7/30/2019 Apprenez a Programmer en c 2e Edition
30/545
C O D E : :
B L O C K S ( W I N D O W S , M A C O S , L I N U X )
m m o l 9 l o l n 3 A F p o n o n n o n d o D w v n F
! v l l s h i o n d o D 9 l d w o o X V i s u a l C + + F s l
l n o n n @ 3 A D m l m n n o n
n l V i s u a l C + + E x p r e s s m n n @ l d d ' E
n l o n n A F s l o m l o d n n m o d l d
o o n d @ d o A F p o n o n n o n d o n m n F
! w y D o o z l o d D n l m n o n l g h d 9 n E
l l o n d w y F g 9 n s h i o o n d l
o m m o n w F p o n o n n o w y n m n F
N o t e p o u r l e s u t i l i s a t e u r s d e L i n u x : i l e x i s t e d e n o m b r e u x I D E s o u s L i n u x , m a i s
l e s p r o g r a m m e u r s e x p r i m e n t s p r f r e n t p a r f o i s s e p a s s e r d ' I D E e t c o m p i l e r
l a m a i n , c e q u i e s t u n p e u p l u s d i c i l e . E n c e q u i n o u s c o n c e r n e n o u s a l -
l o n s c o m m e n c e r p a r u t i l i s e r u n I D E . J e v o u s c o n s e i l l e d ' i n s t a l l e r C o d e : :B l o c k s
s i v o u s t e s s o u s L i n u x , p o u r s u i v r e m e s e x p l i c a t i o n s .
Q u e l e s t l e m e i l l e u r d e t o u s c e s I D E ?
o s h i o m o n d o m m d l d o n
o l m F g n o n l o m l n d o o n D d 9 n l
n l D m d n o l l o m m o z o n l
m m l o l 9 s h i o l z F g o n 9 d o n l 9 o n
o l o F
o l o n d o o D j 9 l g o d : : f l o k F o o l z o n E
m n l m m n m o D o o n d d D j o
o m m n d d o n d o m m n n l l g o d : :
f l o k F
C o d e : :B l o c k s ( W i n d o w s , M a c O S , L i n u x )
g o d : : f l o k n s h i l D d o n l p o u r W i n d o w s , M a c e t L i n u x F
g o d : : f l o k n 9 d o n l o l m o m n 9 n n l F g l n d e o
o l 9 l F g o z E m o D n o o n o 9 l n o ' m n X
9 l l n g n o n F
z o o n d o o m m z D o z d o o n o n o n
n o n d d o m n o n n n l F o l d o n n o n d l o
9 n n l l n F
I Q
7/30/2019 Apprenez a Programmer en c 2e Edition
31/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
T l c h a r g e r C o d e : :
B l o c k s
n d z E o l d l m n d g o d : :f l o k 3
F
l g o d : :f l o k
g o d X V U H Q Q U
! o o n d o D z l o n n d o n l
F l z l l o l n n n l o m m o n n m i n g w d n l n o m
@ F X c o d e b l o c k s - 1 0 . 0 5 m i n g w - s e t u p . e x e A F v 9 o n n n o m l D
o z d m l o m l o o m m 3
! o o v n D o z l k o o n d o d o n F
! i n ( n D o w D o z l ( l l n d l l F
i F X c o d e b l o c k s - 1 0 . 0 5 - p 2 - m a c . z i p F
J ' i n s i s t e l - d e s s u s : s i v o u s t e s s o u s W i n d o w s , t l c h a r g e z l a v e r s i o n i n c l u a n t
m i n g w d a n s l e n o m d u p r o g r a m m e d ' i n s t a l l a t i o n . S i v o u s p r e n e z l a m a u v a i s e
v e r s i o n , v o u s n e p o u r r e z p a s c o m p i l e r v o s p r o g r a m m e s p a r l a s u i t e !
v 9 n l l o n m l d F v z o l o o n d l n z
l o m m F o d z o n n m l l ( F P F I F
y n d n R n d o n d n l n D n m o l 9 m X
I F l a b a r r e d ' o u t i l s X l l o m n d d n o m o o n D m l l E n
n o o n l m n l F t 9 n d l l o n Y
P F l a l i s t e d e s c h i e r s d u p r o j e t X 9 9 0 l l d o
l ( o d o o m m F x o z n o j
n 9 D o n n o d o n n o d ( l 9 n d l l F o
z o n m l d n n m n n l n l d o Y
Q F l a z o n e p r i n c i p a l e X 9 l o o z o o d n l n g Y
R F l a z o n e d e n o t i c a t i o n X l l z o n d l m o D 9 o
z l d o m l o n 9 0 o o d o m o d F
g l l m n 3
s n o n E n o m n n n n o n l d l d 9 o l @ ( F P F P A F
o o z l o o n n @ d n l 9 o d A X C o m p i l e r D E x c u t e r D C o m p i l e r &
E x c u t e r T o u t r e c o m p i l e r F n z E l D n o l l o n l m n F
o l n ( o n d n d n o o z l ( F P F P D d n
l 9 o d X
! c o m p i l e r X o l ( o d o o j o n n o o m l
d n l F 9 l d
4
D l 9 l n
o n o n d l n d g o d : :
f l o k Y
3 . J ' e n p r o t e p o u r v o u s r a p p e l e r q u e l e s c o d e s w e b p e u v e n t t r e e n t r s d a n s l e f o r m u l a i r e d u
S i t e d u Z r o p r v u c e t e e t . C e l a v o u s r e d i r i g e a u t o m a t i q u e m e n t s u r l a p a g e o u l e c h i e r q u i v o u s
i n t r e s s e . V o i r l ' a v a n t - p r o p o s p o u r p l u s d ' i n f o r m a t i o n s c e s u j e t .
4 . C e q u i a d e f o r t e s c h a n c e s d ' a r r i v e r t t o u t a r d !
I R
http://www.siteduzero.com/codeweb/8703377/30/2019 Apprenez a Programmer en c 2e Edition
32/545
C O D E : :
B L O C K S ( W I N D O W S , M A C O S , L I N U X )
F i g u r e P F I ! g o d : :f l o k
F i g u r e P F P ! v n o o n d l d 9 o l
I S
7/30/2019 Apprenez a Programmer en c 2e Edition
33/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
! e x c u t e r X n l n j l d n l o z o m l F g l
o m d o n d o o m m d o n 9 l d o n n F h n
l 9 o d D o z n D o n d o d 9 o d o m l D o
d o n n F y n l l o m o o n F F F
! c o m p i l e r & e x c u t e r X o n d 9 n n o o m n d 9
l o m n o n d d o o n d n F g 9 d 9 l l o o n o
l z l l o n F x o z 9 l d n d n l o m l o n
@ n d n l n o n d l 9 l A D l o m m n F l
l D o z d o n l l l d 9 o 3
! t o u t r e c o n s t r u i r e X n d o c o m p i l e r D g o d : :f l o k n o m l n
l ( o z m o d ( n o n l F o E j d n o E
o z o n d d m n d g o d : : f l o k d o o m l o l ( F
y n l d n d o n o n d o o n D o z l n d l
l o n o n n m n d l o m l o n d n n F o l 9 n n D o n
o n n d o l m n m m n o n o m l n F g o o n n
n o d o n l d F
J e v o u s c o n s e i l l e d ' u t i l i s e r l e s r a c c o u r c i s p l u t t q u e d e c l i q u e r s u r l e s b o u t o n s ,
p a r c e q u e c ' e s t q u e l q u e c h o s e q u ' o n f a i t v r a i m e n t t r s t r s s o u v e n t . R e t e n e z
e n p a r t i c u l i e r q u ' i l f a u t t a p e r s u r F 9 p o u r f a i r e C o m p i l e r & E x c u t e r .
C r e r u n n o u v e a u p r o j e t
o n n o o j D 9 m l X l l z d n l m n F i l e / N e w /
P r o j e c t F h n l n 9 o @ ( F P F Q A D o z C o n s o l e a p p l i c a t i o n F
C o m m e v o u s p o u v e z l e v o i r , C o d e : :
B l o c k s p r o p o s e d e r a l i s e r p a s m a l d e t y p e s
d e p r o g r a m m e s d i r e n t s q u i u t i l i s e n t d e s b i b l i o t h q u e s c o n n u e s c o m m e l a
S D L ( 2 D ) , O p e n G L ( 3 D ) , Q t e t w x W i d g e t s ( f e n t r e s ) , e t c . P o u r l ' i n s t a n t ,
c e s i c n e s s e r v e n t p l u t t f a i r e j o l i c a r l e s b i b l i o t h q u e s n e s o n t p a s i n s t a l l e s
s u r v o t r e o r d i n a t e u r , v o u s n e p o u r r e z d o n c p a s l e s f a i r e m a r c h e r . N o u s n o u s
i n t r e s s e r o n s c e s a u t r e s t y p e s d e p r o g r a m m e s b i e n p l u s t a r d . E n a t t e n d a n t
i l f a u d r a v o u s c o n t e n t e r d e C o n s o l e , c a r v o u s n ' a v e z p a s e n c o r e l e n i v e a u
n c e s s a i r e p o u r c r e r l e s a u t r e s t y p e s d e p r o g r a m m e s .
g l z G o o l o j F n n 9 o F p N e x t D m
n n n F
y n o d m n d n o l l z d g o d g C C @ ( F P F R A X o n d z
g F
y n o d m n d l n o m d o o j @ ( F P F S A d n l d o l (
o o n n F
i n ( n D l d n @ ( F P F T A o m d o d l l o n l o m m
d o o m l F o o z l l o o n d D n 9 d 9 n d n
I T
7/30/2019 Apprenez a Programmer en c 2e Edition
34/545
C O D E : :
B L O C K S ( W I N D O W S , M A C O S , L I N U X )
F i g u r e P F Q ! x o o j
F i g u r e P F R ! g o d l n
I U
7/30/2019 Apprenez a Programmer en c 2e Edition
35/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
F i g u r e P F S ! x o m m l m n d o j
n o l l o n d n l 9 m m d @ l l z l D e b u g o R e l e a s e
m o n o o A F
F i g u r e P F T ! w o d d o m l o n
g l z F i n i s h D 9 o n 3 g o d : :
f l o k o n m o j d j
n o d o d o d d n F
I V
7/30/2019 Apprenez a Programmer en c 2e Edition
36/545
V I S U A L C + + ( W I N D O W S S E U L E M E N T )
h n l d d o j D d l o z l 9 o n n l n l
C o 0 l l d ( d o j F o d z o m o n n m a i n . c
o o z o n d o l E l n d F o o l 3
V i s u a l C + + ( W i n d o w s s e u l e m e n t )
l l l g C C X
! 9 l 9 s h i d w o o Y
! l l n D m w o o o n o n n l l
g C C i Y
! l m d o m m n g e t n g C C @ n o n l m n n g C C o m m
o n n o m l l n n d A F
x o l l o n n n n d o l o n D l g C C i
5
@ ( F P F U A F
F i g u r e P F U ! l g C C i
5 . A t t e n t i o n , i l n ' e s t c o m p a t i b l e a v e c W i n d o w s 7 q u ' p a r t i r d e l a v e r s i o n 2 0 1 0 .
I W
7/30/2019 Apprenez a Programmer en c 2e Edition
37/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
Q u e l l e s s o n t l e s d i r e n c e s a v e c l e v r a i V i s u a l ?
s l n 9 l 9 d d o o m d d n d m D d n D
o d n F w o n D D n n o D o n 9 n m o n 9 o n n 9
o n d 9 n d n o F g n o n d o n o n n l n d n l D
n o n F
o l l g C C i D n d z E o l d l g C C F
l l g C C i E
g o d X Q Q Q U Q Q
l o n n z n l g C C i p n n l l F
l g C C i n n o l m n F g n 9 d o n n o n
d 9 l m d n l m F g 9 n n d 9 o n s h i n l
d w o o d o n l m n D n l l z d o n F
I n s t a l l a t i o n
v 9 n l l o n d n o m l m n n n o m F v o m m d 9 n l E
l o n l l d n o n d l s n n F t o o n l l d
l l o o n d F
s l o n d n l Q H j o F d n D 9 d Y m
l l F
g l z l l n o d o n n X o z l d w o o F g o n n z E
o o o m n d o v s h @ l n d o m r o m l o w x A o
z E n n o n 9 n z D o n d z o n n F
y n o d o n n l ( n n l d 9 n m n F o d z o l d n
l m n ? / I n s c r i r e l e p r o d u i t
F
C r e r u n n o u v e a u p r o j e t
o n n o o j o l D l l z d n l m n F i c h i e r / N o u v e a u /
P r o j e t F l o n n z W i n 3 2 d n l o l o n n d D A p p l i c a t i o n c o n s o l e
W i n 3 2 d o @ ( F P F V A F i n z n n o m o o o j D m l t e s t F
l d z F n n o l l n 9 o @ ( F P F W A F g n n n d E o F
o n D l z P a r a m t r e s d e l ' a p p l i c a t i o n d n l o l o n n d F
l l z P r o j e t v i d e o o o m m l ( F P F I H F g l z n ( n
T e r m i n e r F
P H
http://www.siteduzero.com/codeweb/3337337/30/2019 Apprenez a Programmer en c 2e Edition
38/545
V I S U A L C + + ( W I N D O W S S E U L E M E N T )
F i g u r e P F V ! g o n d o j l g C C i
F i g u r e P F W ! e n o n d o j l g C C i
P I
7/30/2019 Apprenez a Programmer en c 2e Edition
39/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
F i g u r e P F I H ! g o n ( o n d o j
A j o u t e r u n n o u v e a u c h i e r s o u r c e
o o j o l 9 n n n d F p n l d o l d o F i c h i e r s
s o u r c e o D l l z d n A j o u t e r / N o u v e l l m e n t @ ( F P F I I A F
F i g u r e P F I I ! e j o d 9 n ( o
n n 9 o F l o n n z V i s u a l C + + F i c h i e r C + + ( . c p p )
6
F
i n z n n o m o o ( X m a i n . c D o m m l ( F P F I P F
g l z A j o u t e r F n ( d D j o n l 9 n d m n
o l n o m d m a i n . c F
6 . J e s a i s , o n n e f a i t p a s d e C + + m a i s a n ' a p a s d ' i m p o r t a n c e i c i .
P P
7/30/2019 Apprenez a Programmer en c 2e Edition
40/545
V I S U A L C + + ( W I N D O W S S E U L E M E N T )
F i g u r e P F I P ! g o d d ( o
P Q
7/30/2019 Apprenez a Programmer en c 2e Edition
41/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
g 9 o n D o l l z o o o m m n d o d 3
L a f e n t r e p r i n c i p a l e d e V i s u a l
o o n n m l l o n n d l n n l d l g C C i @ ( F P F I Q A F
F i g u r e P F I Q ! p n n l d l g C C i
g n m l n o o n l l d g o d : : f l o k F y n d m n
@ A o n d m m n ( n n d F
I F v d 9 o l X o 9 l d l n d d F y D n D n E
o D o D o D o l l D F d D l m l 9 l n 9 d
o o n d d 9 o l o o m l F o o z l j o n n n l
d o l d 9 o l D n o n D b o g u e r G n r e r d n l l F
o n d o m l o n o n l l n d n l m n G n r e r
D b o g u e r F o G n r e r D l l 9 l @ n ( o m l
o l A F o D b o g u e r / E x c u t e r D o n d o o o d
o m l n d 9 l o m m F p U m d n l o j D p S
d l 9 F
P F h n z o n m o n o o z n o m l m n l l d ( d
o o j F g l z l 9 o n l E x p l o r a t e u r d e s o l u t i o n s n D n 9
P R
7/30/2019 Apprenez a Programmer en c 2e Edition
42/545
X C O D E ( M A C O S S E U L E M E N T )
d j F o d z o l d j d d o o l
d ' n d ( d o o j @ o D n E o A F x o
o n n l d l o n l d ' n d ( o n n
n o j F
Q F v n l X 9 l 9 o n m o d ( l ( o F
o l D o n l o d l g C C F o o z l l j n l d n l o o n
@ O u t i l s / O p t i o n s A o n D m n 9 z o F s l d
9 l l l m n d o d o 9 o n n l o o d o n n d
l F
X c o d e ( M a c O S s e u l e m e n t )
s l l s h i o m l w F s l g o d : :
f l o k n D m n 9
l l F t o n l 9 s h i l l l o w X o d F
g o n d d o d n d 9 n o l v o l w F o m D
l 9 m l o o n d o n o r I Q F w p l o o l m j o d
F
v l o l o d
g o d X T R V S V R
X c o d e , o e s - t u ?
o l l d w y n o n d o m m F e l l 9 n o m
n 9 n l l d d 9 s h i w y F r m n D o o d n
o m m D o F i n ' D o d @ l o o n ( F P F I R A d o n l l
w e o F g o m m n z d o n l l E F
F i g u r e P F I R ! v o o d o d
l l D j o o n l l d m n o l d d d l o
l d 9 e l F o o z n o l d 9 n o m o n l o l d l o m n
o w F o o z n o m m n l l l o l o d l o F
x 9 z o n l 9 e h g @ e l h l o m n g o n n o n A D 9
o z n n o n d n o F
d d d l o
e l
g o d X P T R U H V
P S
http://www.siteduzero.com/codeweb/264708http://www.siteduzero.com/codeweb/6485847/30/2019 Apprenez a Programmer en c 2e Edition
43/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
L a n c e m e n t d e X c o d e
o d l 9 s h i l l l o w D e l l E m m F v l n d
l o l D o m m o o u n o D o n o d l 9 d d o d F g 9 l l m n
l 9 o l d d l o m n d o n d o n n w 3
v m o d n n o o j D l o o m m n o n F
e l l z d n l m n F i l e / N e w P r o j e c t F n n d l o n d o j 9 o
@ ( F P F I S A F
F i g u r e P F I S ! e l d o d
e l l z d n l o n A p p l i c a t i o n l o n n z C o m m a n d L i n e T o o l
7
F
g l z n N e x t F y n o d m n d o o o l z n o o j
@ n o j d o o j o n d l d A n o n n o m F l z E l d n
l d o o o l z F
n o D o o j n o l o m d 9 n d o o n n n d m l E
l ( d n l F i n d e r F v ( l 9 n o n . x c o d e p r o j o o n d (
d o j F g 9 l o d z l o n n l o n o o o z
o o o j F
7 . S i v o u s a v e z u n e v e r s i o n p l u s a n c i e n n e d u l o g i c i e l , i l v o u s f a u d r a p r o b a b l e m e n t a l l e r d a n s l a
s e c t i o n C o m m a n d l i n e u t i l i t y e t s l e c t i o n n e r S t a n d a r d t o o l .
P T
7/30/2019 Apprenez a Programmer en c 2e Edition
44/545
X C O D E ( M A C O S S E U L E M E N T )
L a f e n t r e d e d v e l o p p e m e n t
h n o d D o l o n n z m a i n . c D o d z o n n
m l l ( F P F I T F
F i g u r e P F I T ! o d n o n
v n d o n D n m o d I R F
I F v m l d o o n o n F v l m o n d 9 n
D R u n D o m d 9 o o m m F
P F v d o o n d l 9 o n d o o j F g n E
o n o n l D l m n D F o d o l o m E
m n d n l o n l l l D l l o l n o m d o o j F
Q F v o m n n o n o n d o z l o n n d n l
d F s D o n l o n n d n o ( m a i n . c F
R F i n ( n D l m 0 l l d l 9 o n d o m m d n
l o n o l D l o o z l R u n F
A j o u t e r u n n o u v e a u c h i e r
e d D o n 9 z 9 n l ( o @ m a i n . c A F g n d n D l l o n d n l
o D j o d m n d d d n o ( o l o n o o m m
d n d o n l o F
P U
7/30/2019 Apprenez a Programmer en c 2e Edition
45/545
C H A P I T R E 2 . A Y E Z L E S B O N S O U T I L S !
o n n o ( o o o d D n d z E o d n l m n F i l e /
N e w F i l e F n n o d m n d l d ( o o l z F n d z E
o d n l o n M a c O S X G C a n d C + + l o n n z C F i l e @ p g A F o
d z o o l l ( F P F I U F
F i g u r e P F I U ! e j o n ( o o d
o d z d o n n n n o m o n o ( @ o o l z A F v 9 n o n D
l l D d o . c F o E n o l o n l l o n E D l d d (
. h @ m o n n l A F v o A l s o c r e a t e f i c h i e r . h l o F
o l m o m n D l l n n o n F
g l z n F i n i s h F g 9 3 o ( j o o o j D
n l d m a i n . c F
o m n n n o m m o w 3
E n r s u m
! v o m m o n o n d o o l X n d d D n o m l
n d o F
! s l o l d 9 n l l o l m n D m l o n j o d 9 d 9 o
n k o E n E n l 9 o n l l I D E D l 9 n o n n m n d d l o m n F
! g o d : :
f l o k D l g C C o d o m n m l s h i l l l F
P V
7/30/2019 Apprenez a Programmer en c 2e Edition
46/545
Chapitre3
V o t r e p r e m i e r p r o g r a m m e
D i c u l t :
O
n a p r p a r l e t e r r a i n j u s q u ' i c i , m a i n t e n a n t i l s e r a i t b i e n d e c o m m e n c e r p r o g r a m m e r
u n p e u , q u ' e n d i t e s - v o u s ? C ' e s t j u s t e m e n t l ' o b j e c t i f d e c e c h a p i t r e ! l a n d e c e l u i -
c i , v o u s a u r e z r u s s i c r e r v o t r e p r e m i e r p r o g r a m m e !
B o n d ' a c c o r d , c e p r o g r a m m e s e r a e n n o i r e t b l a n c e t n e s a u r a q u e v o u s d i r e b o n j o u r , i l
s e m b l e r a d o n c c o m p l t e m e n t i n u t i l e m a i s c e s e r a v o t r e p r e m i e r ; j e p e u x v o u s a s s u r e r q u e
v o u s e n s e r e z e r s .
P W
7/30/2019 Apprenez a Programmer en c 2e Edition
47/545
C H A P I T R E 3 . V O T R E P R E M I E R P R O G R A M M E
C o n s o l e o u f e n t r e ?
x o o n d m n l d l n o o n d o m m o n o l d o m m
n d n l d n F x o s h i n o d m n d l d o E
m m n o o l o n j o d d o n d c o n s o l e F
s l o 9 n l d d o m m D l X
! l o m m n Y
! l o m m n o n o l F
L e s p r o g r a m m e s e n f e n t r e s
g o n l o m m o o n n z F v ( F Q F I n m l d o m m
n n o o n n z m n F
F i g u r e Q F I ! v o m m n
d o n D 9 n o m m d n F t o o m z n
d o m m D m m c i n F F F o n 9 l l z o o d 3
i n ' D d o m m d n n g 9 o l D m F F F n d o n
d D 9 n o o m l 3 o d D l m o m m n
d o m m n o n o l F
M a i s a u f a i t , q u o i a r e s s e m b l e u n p r o g r a m m e e n c o n s o l e ?
Q H
7/30/2019 Apprenez a Programmer en c 2e Edition
48/545
C O N S O L E O U F E N T R E ?
L e s p r o g r a m m e s e n c o n s o l e
v o m m o n o l o n l m F o D l 9 o d n
n l n o l n l n 9 z n o d n
o m m o n l j o d 9 F
f n n n d D l m d F n d o n d l 9 o d n n d l
n l m n m l 9 l n 9 l d n F n d o
d n l l m n o l 9 j o d 9 o d m o n d o l 9
l o n o l
1
3
t 9 n n d n o l l 3 L a c o n s o l e n ' e s t p a s m o r t e 3 i n ' D v n m
o d j o l 9 l o n d l o n o l F v ( F Q F P n d 9 n d 9 n o n o l
o v n F
F i g u r e Q F P ! n m l d o n o l D o v n
f F F F ( n D n c o l D o z m n n n n d d o
m l n o n o l F
g d D l m X
! j o d 9 o n 0 d l o l D o n 9 d o n n n o l n o m m
o n o l o Y
! l o n o l z l l n o n d n Y
! 9 o n n o l n n d o n l m F
g o m m j o l 9 d l D d o m m n m o d o n o l o m m
D 9 l d l o d @ n 9 l d o m m n
m o d n A F
x o z l o n o l o l X l l 0 d o l D n n o m
d m n m d o n d F
1 . O u i v o u s l , n e r e g a r d e z p a s d e r r i r e v o u s , j e s a i s q u e v o u s v o u s d e m a n d e z c e q u e c ' e s t .
Q I
7/30/2019 Apprenez a Programmer en c 2e Edition
49/545
C H A P I T R E 3 . V O T R E P R E M I E R P R O G R A M M E
E t s o u s W i n d o w s ? I l n ' y a p a s d e c o n s o l e ?
D m l l n F F F o n d F o o z o n o n o l n
n D m a r r e r / A c c e s s o i r e s / I n v i t e d e c o m m a n d e s D o n n o n n
D m a r r e r / E x c u t e r . . . D n n n c m d F
v ( F Q F Q n l m n ( o n o l d n d o F
F i g u r e Q F Q ! v o n o l d n d o
o o n d o D z d o n 9 d n n n m l
n o o n n o m o m m F j 9 o d o m m n d
o m m n o n o l D n 9 o o n n D n o n 3 i n
o m m n n d o m m n o n o l D o n d z l n
o o o n d n F
S o y e z d o n c r a s s u r s X d n o o n l n o d n D n o
o n o m m n n F
U n m i n i m u m d e c o d e
o n 9 m o l o m m D l d n m n m m d o d F g o d n
n d l m l n d n l F g 9 o d m n m m n o l l o n
d o m n n n F s l d d o l