Les fichiers .h

Le fichier .h (ou carte h / header file) doit être référencé dans le fichier .c
Il comprend des instructions exécutées par le pré-processeur lors de la compilation.

Pour voir le resultat de la pre-compilation, utiliser cpp. Cela permet d'avoir acces au source tel qu'il sera en phase de compilation.<\p>

pour la sécurité

#ifndef MON_PGM_H
# define MON_PGM_H
...
# endif

Cette portion de code montre la creation d'une variable MON_PGM_H dans le cas ou cette dernière n'existe pas. Si elle existe, le pre-processeur saute directement à la fin du fichier.
Donc tout ce qui se trouve à la place des ... ne sera exécuté qu'une seule fois!

Par convention, la forme est toujours nom du fichier .h, ici mon_pgm.h en majuscule suivi d'un _H donc MON_PGM_H.

pour ce qui sera à la place des ...

Définition des librairies

Même fonction que ce qui est dans le fichier .c

# include <pthread.h>
# include <sys/time.h>
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include "./libft/libft.h"

Bien respecter l'espace entre le # et le include !

Définition de variables de remplacement

La variable définie ci-après sera remplacée par son contenu dans le code par un mécanisme proche du rechercher/remplacer.

# define VARIABLE "Ceci est le texte a imprimer.\n"
# define VAR2(x) "Debug de la valeur %d\n",x
// DEBUG en cours si valeur = 1
# define DEBUG 1

La variable est par convention en majuscules est s'utilise de cette façon dans le code

	int	varnum;
	varnum = 5
	printf(VARIABLE);
	if (DEBUG = 1)
		printf(VAR2(varnum):

Ce qui donne comme resultat

Ceci est le texte a imprimer.
Debug de la valeur 5

Définition de type de variable

La création d'un type de variable permet de généraliser la définition de variables.

typedef int *	int_pointer;

Définition de structures

L'avantage d'une structure est de regrouper un certain nombre de variables et de pouvoir les utiliser en parametre de retour.

typedef struct s_proc
{
	pthread_mutex_t   *forks_mut;
	char              *forks;
	int               n_philo;
	t_param           param;
}	t_proc;

Prototype de fonctions

le prototype de fonction est obligatoire si l'appel s'effectue d'un fichier main.c ver un autre fichier, p. exemple init.c. C'est une copie de la définition de la fonction close par un ;.

int		init_process(char type, int proc);

retour


© 2022, vroch
Revisé le : 27 avr 2022
URL : http://vroch.ch/vr_tech_007.html
Main : http://vroch.ch