La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.

Présentations similaires


Présentation au sujet: "Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier."— Transcription de la présentation:

1 Formation C débutant

2 Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier compréhensible et executable par l'OS et la machine

3 Hello World #include int main(void) { /* affiche le fameux Hello World ! */ printf("Hello World !\n"); return( 0 ); }

4 Structure d'un programme C Un programme contient : des directives du préprocesseur : inclusion de librairies (#include ) des définitions de types : typedef int MON_INT des variables: int i = 0; des fonctions (comme main) des commentaires : /* mes commentaires */ des boucles, des structures conditionnelles (if, for, while, switch) des appels de fonctions : fonction_a_moi( 12, 42 ) des opérations : i = 12 * j + 42;

5 Type de bases type caractères: char, signed char : -128 à 127 unsigned char : 0 à 255 types entiers: short int, short, signed short int : -32768 à 32767 unsigned short int, unsigned short : 0 à 65535 (long) int, signed (long) int : -2147483648 à 2147483647 unsigned (long) int : 0 à 4294967295 type à virgule flottante: float double long double

6 Variables et tableaux type nom_de_variable; type nom_de_variable = valeur; type nom_de_tableau[taille du tableau]; type nom_de_tableau[taille1][...][tailleN]; exemples: int i; int j = 12; char char1, char2= 'a'; float point[3]; point[0] = 2.0; point[1] = 12.0; point[3] = 42.0;

7 Fonctions type nom_de_fonction( paramètres ) { variables locales du code C } int carre( int x) { return( x * x ); } exemples void affiche(int i) { int ne_sert_a_rien; printf( "i vaut %d\n", i); }

8 Exemple #include int carre( int x ) { return( x * x ); /* retourne le carre de x */ } int main(void) { int i, j = 12; i = carre( j ); printf( "j² vaut : %d\n", i ); return 0; }

9 Structures conditionnelles if( condition ) { instructions si vrai } else { instruction si faux } switch( valeur ou variable ) { case( valeur1 ): instructions break; case( valeur2 ): instructions break; default: instructions } Remarque : à la place de if... else... on peut parfois utiliser : ( condition ) ? instruction si vrai : instruction si faux

10 Structures de boucle while( condition ) { instructions } do { instructions } while( condition ); for( instruction ; condition; instruction ) { instructions }

11 Exemple #include int main(void) { int i; for( i = 0; i < 12; i++ ) { printf( "i vaut %d\n", i ); } return 0; }

12 Break et continue break : permet de sortir d'une boucle continue : va directement à l'itération suivante

13 Comparaison de while et do while int i = 42; while( i < 12 ) { /* jamais exécuté */ printf( "i vaut %d\n", i ); i = i + 1; } int i = 42; do { /* executé qu'une fois */ printf( "i vaut %d\n", i); i = i +1; } while( i < 12 )

14 Comparaison de while et for int i; for( i =2; i < 12 ; i++ ) { printf( "i vaut %d\n", i ); } int i; i = 2; while( i < 12 ) { printf( "i vaut %d\n", i ); i++; }

15 Notion de pointeur Variable " i " Variable " j " 12 42 NULLPointeur " p " int i = 12, j = 42, * p = NULL; (rien)

16 Notion de pointeur Variable " i " Variable " j " 12 42 Adresse(j) Pointeur " p " p = &j;

17 Notion de pointeur Variable " i " Variable " j " 12 2 Adresse(j) Pointeur " p " *p = 2;

18 Exemples void echange( int *p_x, int *p_y ) { int tmp; tmp = *p_x; *p_x = *p_y; *p_y = tmp; } int a,b; echange( &a, &b ); void echange( int x, int y ) { int tmp; tmp = x; x = y; y = tmp; } int a,b; echange( a, b );

19 Type "structure" struct nom_de_la_structure { champs de la structure } exemple: struct point_s { int x, y; } struct point_s pt1, pt2, *p_pt3; pt1.x = 12; pt1.y = 42; pt2 = pt1; p_pt3 = &pt1; p_pt3->x = 0; p_pt3->y = pt2.y;

20 Type "union" union nom_de_l_union { champs de l'union } ex: union mon_union_u { float f; int i; } union mon_union_u u1; u1.f = 1.2; /* affiche le motif en hexadecimal de 1.2 */ printf( "%f donne 0x%x\n", u1.f, u1.i ); en memoire on a int i u1float f

21 Définition de types personnalisés typedef type_existant nouveau_type; exemple: typedef int MON_INT; typedef struct point_s { int x,y; } point_t; Ansi on peut écrire: struct point_s p1; point_t p2;

22 Opérateurs arithmétiques +, -, *, /, %, ++, -- =, +=, -=, *=,.... logiques ||, &&, ! travaillant au niveaux binaire &, |, ~, > de comparaison, >=, ==, !=

23 Complément - malloc/free Allouer/désallouer dynamiquement des variables/zones mémoires. typedef struct point_s { int x,y; } point_t; point_t *p_pt; /* p_pt n'est pas directement utilisable */ p_pt = malloc( sizeof( point_t ) ); p_pt->x = 2;...... free( p_pt );

24 Complément - malloc/free "Tableaux dynamiques" int i int *tab; tab = calloc( 1242, sizeof( int ) ); for( i = 0; i < 1242; i++ ) { tab[i] = 2*i; /* 1242 premiers nombres pairs */ /* on peut aussi écrire: *(tab+i) = 2*i */ } free( tab );

25 Complément - Compilation source.c divers.c source.o divers.o executable compilation éditions des liens


Télécharger ppt "Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier."

Présentations similaires


Annonces Google