En-tête système et en-tête normal gcc

Je sais que c’est une question très stupide mais je ne peux pas obtenir la différence entre l’en-tête système et l’en-tête normal dans gcc.

En se référant à ce lien :

2.8 En-têtes de système

Les fichiers d’en-tête déclarant des interfaces avec le système d’exploitation et les bibliothèques d’exécution ne peuvent souvent pas être écrits en C ssortingctement conforme. Par conséquent, GCC atsortingbue un code au traitement spécial des en-têtes système . Tous les avertissements, autres que ceux générés par ‘#warning’ (voir Diagnostics), sont supprimés pendant que GCC traite un en-tête système. Les macros définies dans un en-tête système sont immunisées contre quelques avertissements, quelle que soit leur extension. Cette immunité est accordée sur une base ad hoc lorsque nous constatons qu’un avertissement génère de nombreux faux positifs en raison du code contenu dans les macros définies dans les en-têtes du système.

Normalement, seuls les en-têtes trouvés dans des répertoires spécifiques sont considérés comme des en-têtes système. Ces répertoires sont déterminés lors de la compilation de GCC. Il existe cependant deux manières de transformer des en-têtes normaux en en-têtes système:

Les fichiers d’en-tête trouvés dans les répertoires ajoutés au chemin de recherche avec les options de ligne de commande -isystem et -idirafter sont traités comme des en-têtes système à des fins de diagnostic. Il existe également une directive, #pragma GCC system_header, qui indique à GCC de considérer le rest du fichier d’inclusion actuel comme un en-tête système, où qu’il se trouve. Le code qui précède le ‘#pragma’ dans le fichier n’est pas affecté. #pragma GCC system_header n’a aucun effet dans le fichier source primaire.

J’apprécie une réponse montrant si possible le contenu de l’en-tête du système et le type d’avertissements ou de traitement particulier dont il est question dans le lien.

Les en-têtes système sont des fichiers d’en-tête fournis avec le système d’exploitation ou le compilateur. Ils se trouvent dans des répertoires tels que /usr/include sous Unix. Les en-têtes normaux comprennent tout le rest, tels que les fichiers d’en-tête que vous écrivez vous-même ou les fichiers fournis avec une application ou une bibliothèque que vous téléchargez.

what kind of warnings or special treatment is talking about in the link.

Il s’agit d’avertissements émis pour une utilisation en C qui sont obsolètes en vertu des normes en vigueur mais qui étaient considérés comme acceptables lors de l’écriture des en-têtes du système. Par exemple, l’avertissement que you are assigning a ssortingng literal to a char*" (ce qui se ferait de nos jours à l’aide du mot-clé const ).