Programmation C · 3 min read · Nov 18, 2025
Tutoriel de programmation C sous Linux Partie 26 - Structures et Fonctions

Dans l’un de nos précédents tutoriels sur la ligne de commande, nous avons abordé le concept de Structures. À l’aide d’exemples faciles à comprendre, nous avons discuté des éléments de base tels que ce que sont les structures et pourquoi elles sont nécessaires. En nous appuyant sur cela, dans ce tutoriel, nous allons discuter de la manière dont les structures et les fonctions peuvent être utilisées ensemble.
Structures et Fonctions dans le langage de programmation C
Avant de commencer, rafraîchissons rapidement comment une structure est déclarée. Voici un exemple :
struct emp_details {
int emp_code;
int emp_age;
};Ici, le mot-clé struct - qui est obligatoire si vous définissez une structure en C - signifie le début de la déclaration. Il est suivi d’une étiquette, ou vous pouvez dire le nom de la structure. Ensuite, à l’intérieur des accolades, vous avez deux variables entières, qui sont regroupées en tant que partie de cette structure.
Pour utiliser cette structure, vous devez d’abord définir son instance ou objet. Vous pouvez le faire de la manière suivante :
emp_details obj;Et ensuite, les membres de la structure peuvent être accessibles de la manière suivante :
obj.emp_code
obj.emp_ageMaintenant, en ce qui concerne les fonctions, une fonction peut retourner des structures ainsi qu’accepter des structures sous forme d’arguments. Voici un exemple :
#include
struct emp_details {
int emp_code;
int emp_age;
};
struct emp_details fill(int code, int age)
{
struct emp_details obj;
obj.emp_code = code;
obj.emp_age = age;
return obj;
}
int main()
{
int x,y;
printf("Entrez le code de l'employé : ");
scanf("%d", &x);
printf("\n Entrez l'âge de l'employé : ");
scanf("%d", &y);
struct emp_details new_obj;
new_obj = fill(x,y);
printf("\n Le code de l'employé et l'âge que vous avez saisis sont : %d et %d", new_obj.emp_code, new_obj.emp_age);
return 0;
} Ici, dans cet exemple, nous avons une fonction ‘fill’ qui accepte deux entiers, les traite comme code et âge, remplit une structure en fonction de ces informations et retourne la structure par valeur à l’appelant de la fonction.
Comme je l’ai mentionné précédemment dans une déclaration ci-dessus, les structures peuvent également être passées comme arguments de fonction. Voici un exemple, où la fonction ‘fill’ accepte une structure ‘emp_details’ comme argument.
#include
struct emp_details {
int emp_code;
int emp_age;
};
void fill(struct emp_details obj)
{
printf("\n Le code de l'employé et l'âge que vous avez saisis sont : %d et %d", obj.emp_code, obj.emp_age);
}
int main()
{
int x,y;
printf("Entrez le code de l'employé : ");
scanf("%d", &x);
printf("\n Entrez l'âge de l'employé : ");
scanf("%d", &y);
struct emp_details new_obj;
new_obj.emp_code = x;
new_obj.emp_age = y;
fill(new_obj);
return 0;
} Et voici la sortie dans mon cas :
Entrez le code de l'employé : 36
Entrez l'âge de l'employé : 29
Le code de l'employé et l'âge que vous avez saisis sont : 36 et 29En avançant, comme pour les variables normales, les tableaux, et plus encore, il peut également y avoir des pointeurs vers des structures. Voici un exemple :
struct emp_details *ptr;Comme toujours, les pointeurs sont utiles dans le cas où la taille de la structure est grande, et vous l’envoyez comme argument à une fonction. Idéalement, voici comment vous pouvez accéder aux variables de structure via des objets pointeurs :
(*ptr).emp_code
(*ptr).emp_ageMais pour des raisons de simplicité, C vous permet d’omettre * et . et d’utiliser ‘->’ à la place. Voici un exemple :
ptr->emp_code
ptr->emp_age Voici un exemple qui utilise un pointeur de structure :
#include
struct emp_details {
int emp_code;
int emp_age;
};
void fill(struct emp_details *obj)
{
printf("\n Le code de l'employé et l'âge que vous avez saisis sont : %d et %d", obj->emp_code, obj->emp_age);
}
int main()
{
int x,y;
printf("Entrez le code de l'employé : ");
scanf("%d", &x);
printf("\n Entrez l'âge de l'employé : ");
scanf("%d", &y);
struct emp_details new_obj;
new_obj.emp_code = x;
new_obj.emp_age = y;
fill(&new_obj);
return 0;
} Bien que ce soit le même exemple que nous avons utilisé précédemment, les changements - puisque nous utilisons maintenant un pointeur de structure - sont mis en évidence en gras.
Conclusion
Dans ce tutoriel, nous avons approfondi notre compréhension des structures en discutant de la manière dont les fonctions et les structures peuvent être utilisées ensemble. Vous êtes encouragés à essayer les exemples que nous avons utilisés ici sur votre système local. En cas de doute ou de question, laissez un commentaire ci-dessous.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.