IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Créer un fichier.h


Sujet :

C

  1. #21
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par zguingua Voir le message
    et voici l'erreur apres compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /usr/lib/gcc/i586-suse-linux/4.1.2/../../../crt1.o: In function `_start':
    (.text+0x18): undefined reference to `main'
    collect2: ld returned 1 exit status
    make: *** [dvbt_appdsm] Error 1
    mais dés que je change ma focntion_o par la fonction main() sa marche bien je ne sais pas pourquoi??? merci pour votre aide
    Bêtement, je dirais que tu n'as pas de fonction main dans ton projet. Pour rappel, tu dois avoir un point d'entrée à ton programme, en général celui-ci est donnée par la fonction main (à moins que tu soit sur un OS propriétaire avec un loader particulier). Donc, ton projet devrait contenir les éléments suivants:
    1. un main.c avec l'implémentation de ton main,
    2. un fonction.h avec les prototypes de tes fonctions (fonction1, fonction2, ...),
    3. un fonction.c avec leur implémentation.

    Ensuite, ton main orchestre les différents appels de tes fonctions suivant ce que ton programme est censé faire.

  2. #22
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Montre ton makefile
    RE
    desoler mais l'erreur je pense pas quelle viens du MakeFile. moi je pense que y a une erreur quelque part que je n'arrive pas a trouvé soit dans le .h ou bien dans .c mais mais juste une question les structure de la focntion faut il les declaré dans le .h ou bien dans le .c

  3. #23
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Les structures sont des types donc il est préférable de les déclarer dans les .h, en particulier si elles sont utilisées dans différents modules. Ensuite, soit tu peut les mettre dans le même .h que tes fonctions soit dans un .h particulier et inclure ce .h dans celui de tes fonctions. C'est à apprécier selon la relation entre tes structures et les fonctions définies.
    P.S.: il n'y a pas de '.' ou de ',' dans ton clavier? Tes mails sont parfois difficiles à lire...

  4. #24
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Bêtement, je dirais que tu n'as pas de fonction main dans ton projet. Pour rappel, tu dois avoir un point d'entrée à ton programme, en général celui-ci est donnée par la fonction main (à moins que tu soit sur un OS propriétaire avec un loader particulier). Donc, ton projet devrait contenir les éléments suivants:
    1. un main.c avec l'implémentation de ton main,
    2. un fonction.h avec les prototypes de tes fonctions (fonction1, fonction2, ...),
    3. un fonction.c avec leur implémentation.

    Ensuite, ton main orchestre les différents appels de tes fonctions suivant ce que ton programme est censé faire.
    je t'envoi le programme complet celui la il marche bien je le comile pas d'erreur super
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
    #include <string.h>
    #include <strings.h>
    #include <assert.h>
    #include <stdio.h>
    #include <stdlib.h>
     
     
    #include "DSM_ExtAPI.h"
    #include "DSM_Log.h"
    #include "DSM_Port.h"
     
     
    #define appdsm_DSMStatus_ToString( _status_ ) (\
            ( _status_ == DSM_Status_New ) ? "NEW":\
            ( _status_ == DSM_Status_Reachable ) ? "REACHABLE":\
            ( _status_ == DSM_Status_Unreachable ) ? "UNREACHABLE":\
            ( _status_ == DSM_Status_Removed ) ? "REMOVED":\
                    "unknown")
     
    /* appli context */
    struct appdsmCtx_t { 
        DSM_UCHAR dvbt_buffer[100000];
        DSM_UCHAR sipsi_buffer[4096];
     
        unsigned char dvbtNetworkFound;
        unsigned char dvbtServiceOk;
        unsigned char sipsiServiceOk;
     
        DSM_ServiceHandle dvbtServHdl;
        DSM_ServiceHandle sipsiServHdl;
     
    };
     
    /* services status callback */
    void appdsm_ServiceStatusCB( void * userContext, const DSM_ServiceStatusCbData * pStatus ) {
        struct appdsmCtx_t * pCtx = (struct appdsmCtx_t *)userContext;
     
        if (pStatus->status == DSM_Service_OK) {
            printf("<Service Status> handle %d : status %s\n",
                    pStatus->handle, "OK" );
    		if ( pStatus->handle == pCtx->dvbtServHdl ) {
                pCtx->dvbtServiceOk = 1;
            } else if ( pStatus->handle == pCtx->sipsiServHdl ) {
        pCtx->sipsiServiceOk = 1;
            }
        }
    }
     
    /* events callbacks */
    void appdsm_EventsCB( void * userContext, const DSM_EventCbData * pStatus ) {
        struct appdsmCtx_t * pCtx = (struct appdsmCtx_t *)userContext;
        if (( pStatus->event == DSM_Event_ServGroup )
                && ( pStatus->info.servGroup.sg.type == DSM_ServiceProtocol_DVBT ))
        {
                printf("<Event Svc Group> NwId: %d %s \n",
                        pStatus->info.servGroup.sg.subref.dvbt.nid,
                        appdsm_DSMStatus_ToString( pStatus->info.servGroup.status) );
    /*		DSM_MiliSecSleep(500);*/
                pCtx->dvbtNetworkFound = 1;
        }
    }
     
    void myCallback (void *context, DSM_ServiceHandle serviceHdl, DSM_ComponentHandle componentHdl, DSM_BufContext *dsmBufCtx, eDSM_DataStatus Status ) {
        FILE *TsOut;
        TsOut = fopen("out.ts", "ab");
        fwrite( dsmBufCtx->BufAdd, sizeof(DSM_CHAR), dsmBufCtx->BufSize, TsOut);
        fclose(TsOut);
     
        dsmBufCtx->BufSize = 100000;
        if (Status != DSM_DataStatus_Removed)
            DSM_RegisterDataBuffer ( dsmBufCtx, serviceHdl, componentHdl );
    }
     
    void myCallbackSIPSI (void *context, DSM_ServiceHandle serviceHdl, DSM_ComponentHandle componentHdl, DSM_BufContext *dsmBufCtx, eDSM_DataStatus Status ) {
        FILE *TsOut;
        TsOut = fopen("outSIPSI.ts", "ab");
        fwrite( dsmBufCtx->BufAdd, sizeof(DSM_CHAR), dsmBufCtx->BufSize, TsOut);
        fclose(TsOut);
        dsmBufCtx->BufSize = 4096;
     
        if (Status != DSM_DataStatus_Removed)
            DSM_RegisterDataBuffer ( dsmBufCtx, serviceHdl, componentHdl );
    }
     
    DSM_ServiceHandle appdsm_addDVBT( unsigned int nid, unsigned int tsid, unsigned int onid, unsigned int servid, 
                    DSM_Bool enablePatPmtInRawTS, eDSM_ServicePriority priority, eDSM_ServiceMode mode ) {
        DSM_Service         serv;
        DSM_ServiceHandle   servHdl;
     
        DSM_ServiceDVBT_Init( &serv ); /* default initialization */
        serv.priority         = priority;
        serv.mode             = mode;
        serv.protocol         = DSM_ServiceProtocol_DVBT;
        serv.cbCtx.CallbackFunc = myCallback;
        serv.cbCtx.timeout    = DIB_TIMEOUT_INFINITE;
        serv.data.dvbt.nid    = nid;
        serv.data.dvbt.tsid   = tsid;
        serv.data.dvbt.onid   = onid;
        serv.data.dvbt.servid = servid;
        serv.data.dvbt.enablePatPmtInRawTS = DSM_True;
     
        servHdl = DSM_AddService( &serv );
     
        return servHdl;
    }
     
    DSM_ServiceHandle appdsm_addSIPSI ( void ) {
        DSM_Service         serv;
        DSM_ServiceHandle   servHdl;
     
        DSM_ServiceSIPSI_Init( &serv );
        serv.cbCtx.CallbackFunc = myCallbackSIPSI;
        serv.cbCtx.timeout     = DIB_TIMEOUT_INFINITE;
        servHdl = DSM_AddService( &serv );
        return servHdl;
    }
     
     
    /*********************************************************
     * main function
     *********************************************************/ 
    int main() {
     
        DSM_Result ret;
        DSM_Config DSM_Config;
        DSM_DatabaseConfig LoadedDatabase;
     
        struct appdsmCtx_t appCtx;
     
        /* appli context init */
        appCtx.dvbtNetworkFound = 0;
        appCtx.dvbtServiceOk    = 0;
        appCtx.sipsiServiceOk   = 0;
        appCtx.dvbtServHdl      = DSM_ServiceHandle_NULL;
        appCtx.sipsiServHdl     = DSM_ServiceHandle_NULL;
     
        /* initialize config */
        DSM_API_Config_Init(&DSM_Config);
     
        DSM_Config.nbFrequencies = 0;
    	printf("nombre de frequence a scanner = ");
            scanf("%u", &DSM_Config.nbFrequencies);
        DSM_Config.frequenciesArray = (DSM_RFChan*) malloc( DSM_Config.nbFrequencies*sizeof( DSM_RFChan ) );
        DSM_Config.frequenciesArray[0].id.freq = (DSM_FreqKhz)0;
    	printf("quel freq(Khz) a scanner ->");
    	scanf("%u", &DSM_Config.frequenciesArray[0].id.freq);
     
     
        DSM_Config.frequenciesArray[0].type = DSM_PhysicalLayer_DVB;
        DSM_Config.frequenciesArray[0].subref.dvb.bandwidth = DSM_Bandwidth_8Mhz;
        DSM_Config.frequenciesArray[0].subref.dvb.hierarchical = DSM_Hierarchical_HP;
     
        /* open dsm */
        ret = DSM_Open(&DSM_Config );
       assert( ret == DSM_Success );
        DSM_DEFAULT_LOG_LEVEL();
     
        /* free config */
        free( (void*)DSM_Config.frequenciesArray );
        DSM_Config.frequenciesArray = NULL;
     
        /* register callback */
        DSM_RegisterServiceStatusCallback( appdsm_ServiceStatusCB, &appCtx );
        DSM_RegisterEventCallback( appdsm_EventsCB, &appCtx, 0 );
     
        /* Start dsm */
        DSM_DatabaseConfig_Init( &LoadedDatabase );
        ret = DSM_Start( &LoadedDatabase );
     
    assert( ret == DSM_Success );
     
    /*    Wait for a network to be found */
       while (appCtx.dvbtNetworkFound != 1)
            DSM_MiliSecSleep(1000);
     
     
     
        /* waiting for user interaction */
        getchar();
     
        /* quit */
        DSM_Stop( NULL );
        DSM_Close( );
     
        return 0;
    }
    la moi j'intervien pour crée une une nouvelle fonction que je doit definir dans mon fichier.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    voici mon .h
    #ifndef PingoDsmWrapper
    #define PingoDsmWrapper 
    /*fonction0 de pingo*/
     
    int fonction_0(DSM_Config *pconfig);
    #endif
    cette fonction je doit la mettre dans le application.c comme fonction principale (au lieu de mettre main() je met foonction ) c-a-d elle fait appele au callback fait appele a d'autre
    fonction avoire le meme resutat que je vien d'obtenire avec main ()

  5. #25
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Les structures sont des types donc il est préférable de les déclarer dans les .h, en particulier si elles sont utilisées dans différents modules. Ensuite, soit tu peut les mettre dans le même .h que tes fonctions soit dans un .h particulier et inclure ce .h dans celui de tes fonctions. C'est à apprécier selon la relation entre tes structures et les fonctions définies.
    P.S.: il n'y a pas de '.' ou de ',' dans ton clavier? Tes mails sont parfois difficiles à lire...
    ok merci moi aussi c se que j'ai fait j'ai tous mis dans le .h. desoler pour <.> et les <,>

  6. #26
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par zguingua Voir le message
    cette fonction je doit la mettre dans le application.c comme fonction principale (au lieu de mettre main() je met foonction ) c-a-d elle fait appele au callback fait appele a d'autre
    fonction avoire le meme resutat que je vien d'obtenire avec main ()
    Moi y en avoir rien compris.

  7. #27
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Moi y en avoir rien compris.
    j'ai la fonction main dans le programme que je viens d'envoyé, je voudrais mettre fonction_0 a la place de fonction main est il possible????????????

  8. #28
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    J'avoue que je ne comprend pas trop ton problème. Oui tu peux renommer ta fonction main en fonction0, mais ton programme va toujours attendre un point d'entrée. Donc soit tu créée une nouvelle fonction main, soit tu demande à ton compilo (ou plutôt au linker) d'utiliser une autre fonction comme point d'entrée. Mais là ça va dépendre de ton compilo et de ton environnement cible (par exemple, sous Win avec Visual, tu peux spécifier le point d'entrée avec /ENTRY).

  9. #29
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zguingua Voir le message
    j'ai la fonction main dans le programme que je viens d'envoyé, je voudrais mettre fonction_0 a la place de fonction main est il possible????????????
    Tu ne peux pas supprimer la fonction main(). C'est le point d'entrée du programme. C'est ce qu'on apprend en ouvrant la page 1 d'un cours de C.

    http://emmanuel-delahaye.developpez.com/init_c.htm
    Pas de Wi-Fi à la maison : CPL

  10. #30
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    J'avoue que je ne comprend pas trop ton problème. Oui tu peux renommer ta fonction main en fonction0, mais ton programme va toujours attendre un point d'entrée. Donc soit tu créée une nouvelle fonction main, soit tu demande à ton compilo (ou plutôt au linker) d'utiliser une autre fonction comme point d'entrée. Mais là ça va dépendre de ton compilo et de ton environnement cible (par exemple, sous Win avec Visual, tu peux spécifier le point d'entrée avec /ENTRY).
    ok moi je suis sous linux alors je doit crée un fichier.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include "fichier.h"/*le fichier ou j'ai definit ma fonction*/
    int main (){
    fonction_0(paremtre de la fonction )// appele la fonction
    }
    si j'ai bien compris????

  11. #31
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    ben je ne sais pas comment mais j'ai eu a faire a des application ou main ne figure pas dans le programme???

  12. #32
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par zguingua Voir le message
    ok moi je suis sous linux alors je doit crée un fichier.c

    #include "fichier.h"/*le fichier ou j'ai definit ma fonction*/
    int main (){
    fonction_0(paremtre de la fonction )// appele la fonction
    }

    si j'ai bien compris????

  13. #33
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 22
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    ben merci je vais essayé de metre le tous en place et je vous tien au courant

  14. #34
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zguingua Voir le message
    ben je ne sais pas comment mais j'ai eu a faire a des application ou main ne figure pas dans le programme???
    Tu ne le voyais pas, mais il était là. Ou alors tu écrivais un système ou une bibliothèque...
    Pas de Wi-Fi à la maison : CPL

  15. #35
    Membre régulier Avatar de clampin
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 96
    Points : 105
    Points
    105
    Par défaut
    Bonjour,

    Excusez moi de revenir un peu sur le début du thread, mais j'aimerai avoir juste petite précision qui n'est pas très claire dans mon esprit.

    Est-il important dans le fichier d'en-tête de taper l'en tête en majuscule ou en minuscule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #ifndef __include_fichier_h__
    #define __include_fichier_h__
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    #ifndef __INCLUDE_FICHIER_h__
    #define __INCLUDE_FICHIER_h__
    Est-ce qu'il y a une différence pour le compilateur entre ces deux formes ?

  16. #36
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Strictement aucune différence. C'et une convention personnelle.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  17. #37
    Membre régulier Avatar de clampin
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 96
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Strictement aucune différence. C'et une convention personnelle.
    Ok, merci, c'est maintenant clair....

  18. #38
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par clampin Voir le message
    Bonjour,

    Excusez moi de revenir un peu sur le début du thread, mais j'aimerai avoir juste petite précision qui n'est pas très claire dans mon esprit.

    Est-il important dans le fichier d'en-tête de taper l'en tête en majuscule ou en minuscule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #ifndef __include_fichier_h__
    #define __include_fichier_h__
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    #ifndef __INCLUDE_FICHIER_h__
    #define __INCLUDE_FICHIER_h__
    Est-ce qu'il y a une différence pour le compilateur entre ces deux formes ?
    Les deux se font. Par contre, tu n'as pas le droit de mettre de '_' en tête d'un identificateur. De plus, comme 'E' est aussi interdit, je recommande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifndef H_FICHIER
    #define H_FICHIER
    <...>
    de plus, comme il faut essayer de garantir l'unicité de l'identificateur (sinon, ça créee des bugs très difficile à trouver), je recommande d'ajouter la date et l'heure de création :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifndef H_FICHIER_200809061628
    #define H_FICHIER_200809061628
    <...>
    http://emmanuel-delahaye.developpez....ganiser_source
    http://emmanuel-delahaye.developpez.....htm#organiser
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Créer un fichier d'enregistrements
    Par Oregor dans le forum Langage
    Réponses: 19
    Dernier message: 02/06/2012, 20h02
  2. [CR] Version nécessaire pour créer des fichiers DSR ?
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/11/2003, 09h01
  3. Réponses: 7
    Dernier message: 26/06/2003, 09h11
  4. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 18h30
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo