Inclure la syntaxe des gardes en C

Bonjour tout le monde je veux poser une question sur inclure des gardes dans la programmation C. Je sais qu’il but mais dans certains codes j’ai vu “1” écrit après #define comme

#ifndef MYFILE_H #define MYFILE_H 1 

Quel est le but de ce “1”? Est-ce nécessaire ? Merci

    Il n’est pas nécessaire que la macro MYFILE_H ne soit pas utilisée ailleurs dans votre code.

    S’il est utilisé ailleurs avec une directive #ifdef ou #ifndef comme ici:

     #ifdef MYFILE_H 

    alors le 1 n’est pas requirejs dans la définition de macro

    mais s’il est utilisé ailleurs avec une directive #if comme ici:

     #if MYFILE_H 

    alors le 1 (ou n’importe quelle valeur != 0 ) est requirejs dans la définition de la macro.

    Notez que ces directives peuvent être utilisées dans un fichier source pour vérifier si l’en-tête est inclus ou non.

    Ce n’est pas nécessaire, #define MYFILE_H devrait faire l’affaire. Le fait que MYFILE_H soit défini (la condition testée par ifndef ) est séparé de sa valeur. Cela pourrait être 0, ”, 42, etc.

    C’est une question de style, autant que je sache. Ce ‘1’ est inutile à mon avis; ça ne fait vraiment rien.