Le Language

October 10, 2025

Language C

Notion fondamental

main

#include <stdio.h>

int main(void) {
	printf("hello\n");
	return 0;
}
  • include est une command prêt processeur car elle commence avec #
  • ils exists des bibiliothèque standard que vous pouvez retrouvez sour /usr/includetel que le fichier stdio.h
  • int main(void) idique qu’il s’agit d’une fonction nomé main retournant un entier et ne prenant pas de paramètre. La fonction main est un peut particulière puisque c’est elle qui sera appeler en première lors de l’execution du binaire.

makefile

outil d’automatisation de la compilation

CC = gcc
CFLAGS = -Wall -Wextra
TARGET = <TARGE_NAME>

all: $(TARGET)

$(TARGET): main.c
	$(CC) $(CFLAGS) main.c -o $(TARGET)

.PHONY: clean
clean:
	rm -f $(TARGET)

function

#include <stdio.h>

int add(int , int );

int main(void) {
	printf("hello\n");
	return 0;
}


int add(int a, int b){
    return a + b;
}
  • prototypage de fonction, int add(int a, int b); permet de rendre le code plus lissible
  • les paramètres, a et b sont des paramètes de fonction

MACRO

#include <stdio.h>

#define PI 3.14159

int main() {
    float radius = 5.0;
    float area = PI * radius * radius;

    printf("L'aire du cercle est : %.2f\n", area);
    return 0;
}

Constante

#include <stdio.h>

int main() {
    const float pi = 3.14159;
    float radius = 5.0;
    float area = pi * radius * radius;

    printf("L'aire du cercle est : %.2f\n", area);
    return 0;
}

Enum

#include <stdio.h>

enum ghg_emissions_unit {
    CO2Eq,
    KCO2Eq
}; 

const char* ghg_emissions_unit_to_string(enum ghg_emissions_unit);

int main(void) {
    enum ghg_emissions_unit unit = CO2Eq;
    printf("%s\n",ghg_emissions_unit_to_string(unit) );
    return 0;
}

const char* ghg_emissions_unit_to_string(enum ghg_emissions_unit unit) {
    switch (unit) {
        case CO2Eq:
            return "CO2eq";
        case KCO2Eq:
            return "KCO2eq";
        default:
            return "Unknown Unit";
    }
}

Structure

#include <stdio.h>

enum ghg_emissions_unit {
    CO2Eq,
    KCO2Eq
}; 

struct ghg_emissions {
    float value;
    enum ghg_emissions_unit unit;
};

void print_emissions( struct ghg_emissions );

const char* ghg_emissions_unit_to_string(enum ghg_emissions_unit);

int main(void) {

    struct ghg_emissions emissions = {
        .value= 150,
        .unit = CO2Eq
    };

    print_emissions(emissions);

    return 0;
}


void print_emissions( struct ghg_emissions emissions) {
    printf("%2.f %s\n", emissions.value, ghg_emissions_unit_to_string(emissions.unit));
}

const char* ghg_emissions_unit_to_string(enum ghg_emissions_unit unit) {
    switch (unit) {
        case CO2Eq:
            return "CO2eq";
        case KCO2Eq:
            return "KCO2eq";
        default:
            return "Unknown Unit";
    }
}

arboresence

.
├── bin
│   └── arborecence
├── include
│   └── ghg.h
├── Makefile
├── obj
│   ├── ghg.o
│   └── main.o
├── Readme.md
└── src
    ├── ghg.c
    └── main.c

pointer

#include <stdio.h>

int main() {
    int nombre = 10;      // Déclaration d'une variable entière
    int *pointeur;        // Déclaration d'un pointeur

    pointeur = &nombre;   // Le pointeur stocke l'adresse de la variable 'nombre'

    // Affichage de la valeur de la variable et de son adresse
    printf("Valeur de nombre: %d\n", nombre);
    printf("Adresse de nombre: %p\n", &nombre);

    // Utilisation du pointeur pour accéder à la valeur
    printf("Valeur pointee par pointeur: %d\n", *pointeur);
    printf("Adresse du pointeur: %p\n", &pointeur);
    
    // Modification de la valeur via le pointeur
    *pointeur = 20;
    
    // Affichage après modification
    printf("Nouvelle valeur de nombre: %d\n", nombre);
    printf("Les address non pas changé:\nn:%p\np:%p\n", &nombre, &pointeur);

    return 0;
}

debeugeur

à faire !