Aperçu de la syntaxe C

Code de base

		#include <stdio.h>

		int main(int argc, char * argv[]) {
			...
			return 0;
		}
	

Variables

		#include <stdio.h>

		// Variable globale, disponible dans toutes les fonctions
		double PI = 3.14159265358979;

		double aireCercle(double rayon) {
			return rayon * rayon * PI;
		}

		int main(int argc, char * argv[]) {
			// Variables locales, uniquement visibles
			// à l'intérieur de cette fonction
			double diametre = 16.0;
			double aire = aireCercle(diametre / 2);

			printf("Diamètre: %f\n", diametre);
			printf("Aire: %f\n", aire);
			return 0;
		}
	

Seulement les lettres (a-z), chiffres (0-9) et "_" sont permis. Le compilateur C n'accepte pas d'accents, umlauts, emojis ou autres caractères spéciaux.

Tableaux

		#include <stdio.h>

		void afficheTemperatures(double temperatures[], int longueur) {
			for (int i = 0; i < longueur; i++) {
				printf("Jour %d: %0.2f °C\n", i + 1, temperatures[i]);
			}
		}

		int main(int argc, char * argv[]) {
			// Initialisation directe
			double humidite[] = {51.0, 48.8, 46.2, 49.2, 49.9};

			// Créer le tableau, puis le remplir
			double temperatures[5];
			temperatures[0] = 20.4;
			temperatures[1] = 21.3;
			...
			temperatures[4] = 23.0;
			afficheTemperatures(temperatures, 5);

			return 0;
		}
	

Conditions

		#include <stdio.h>
		#include <stdbool.h>

		int main(int argc, char * argv[]) {
			// if - else if - else
			int countryCode = 41;
			if (countryCode == 41) {
				printf("Suisse\n");
			} else if (countryCode == 33) {
				printf("France\n");
			} else if (countryCode == 49) {
				printf("Allemagne\n");
			} else {
				printf("Autre pays ...\n");
			}

			// Variable de type bool (inclure stdbool.h)
			bool quitterImmediatement = false;

			// Syntaxe abrégé sans accolades pour une seule instruction
			if (quitterImmediatement)
				return 0;

			// Conditions combinées
			// && signifie "et"
			// || signifie "ou"
			// ! signifie "ne ... pas"
			bool feuVert = true;
			bool voitures = true;
			if (feuVert && ! voitures) {
				printf("On peut traverser la route.\n");
			} else {
				printf("On ne peut pas traverser.\n");
			}

			// Opérateur conditionnel
			// resultat = condition ? valeurVrai : valeurFaux;
			int x = ...;
			char * texte = x > 5 ? "grand" : "petit";

			// Equivalent à
			char * texte;
			if (x > 5) {
				texte = "grand";
			} else {
				texte = "petit";
			}

			return 0;
		}
	

Boucles

		#include <stdio.h>

		int main(int argc, char * argv[]) {
			printf("Le programme est lancé!\n");

			// Boucle for
			for (int i = 0; i < 10; i++) {
				printf("%d\n", i);
			}

			// Boucle while
			int nombre = 72;
			int compteur = 0;
			while (nombre % 2 == 0) {
				nombre /= 2;
				compteur += 1;
			}

			printf("On a divisé %d fois par deux, et on est arrivé à %d.\n", compteur, nombre);
			return 0;
		}
	

Fonctions

		#include <stdio.h>

		double calculePrix(int quantite, double prixUnitaire, double rabaisPourcent) {
			double rabaisFacteur = 1 - rabaisPourcent / 100;
			return quantite * prixUnitaire * rabaisFacteur;
		}

		void afficheTotal(double prix) {
			printf("Total: %0.2f\n", prix);
		}

		int main(int argc, char * argv[]) {
			double prix = calculePrix(12, 4.5, 10);
			afficheTotal(prix);
			return 0;
		}
	

Structures

		#include <stdio.h>

		// Définir une structure
		struct WGS84Coordinate {
			double longitude;
			double latitude;
			float altitude;
		};

		int main(int argc, char * argv[]) {
			// Initialiser directement
			struct WGS84Coordinate matterhorn = {45.97639, 7.65833, 4478};

			// Créer et remplir une structure
			struct WGS84Coordinate matterhorn;
			matterhorn.longitude = 45.97639;
			matterhorn.latitude = 7.65833;
			matterhorn.altitude = 4478;

			printf("Le Mont Cervin a une altitude de %0.0f m.\n", matterhorn.altitude);
			return 0;
		}
	

Pointeurs

		#include <stdio.h>

		int main(int argc, char * argv[]) {
			int a = 0;

			// Pointeur sur a
			int * b = &a;
			*b = 5;
			// ou: b[0] = 5;

			printf("a vaut maintenant %d.\n", a);
			return 0;
		}
	

Passage par réference

		#include <stdio.h>

		struct GpsPoint {
			double longitude;
			double latitude;
			float altitude;
		};

		void remplirMatterhorn(struct GpsPoint * matterhorn) {
			matterhorn->longitude = 45.97639;
			matterhorn->latitude = 7.65833;
			matterhorn->altitude = 4478;
		}

		int main(int argc, char * argv[]) {
			struct GpsPoint matterhorn;
			remplirMatterhorn(&matterhorn);

			printf("Le Mont Cervin a une altitude de %0.0f m.\n", matterhorn.altitude);
			return 0;
		}