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 :

#define


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut #define
    Bonjour, j'aurais une petite question avec les #define. Pouvez-vous m'aider s'il vous plait à "finir" mon "code" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #ifndef PI
    #define PI 3.14
    si la constante PI est déjà définie renvoyer un message d'erreur " la constante PI est  déjà défine dans le fichier nom_du_fichier. Arrêt de la compilation
    #endif
    Merci.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par salseropom
    Bonjour, j'aurais une petite question avec les #define. Pouvez-vous m'aider s'il vous plait à "finir" mon "code" :
    #error

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Salut Emmanuel, merci. J'ai inclus le #error : voici mon code :

    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
     
    #include<stdlib.h>
    #include<stdio.h>
     
    #ifndef PI
    #define PI 3.14
    #error "fin du prgm 1"
    #endif
     
    #ifndef PI
    #define PI 3.15
    #error "fin du prgm 2"
    #endif
     
    #ifndef PI2
    #define PI2 PI+PI
    #error "fin du prgm 3"
    #endif
     
    int main()
    {
      printf("PI = %f\nPI2 = %f\n",PI,PI2);
      return(0);
     
    }
    mes sorties sont :

    compilaton : rm -f out;gcc -Wall -W cste.c -o out;./out
    cste.c:6:2: #error "fin du prgm 1"
    cste.c:16:2: #error "fin du prgm 3"
    bash: ./out: Aucun fichier ou répertoire de ce type
    Pourquoi n'ai-je pas uniquement "fin du prgm 2" ?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par salseropom
    Pourquoi n'ai-je pas uniquement "fin du prgm 2" ?
    C'est de l'algorithmique de base non ?

    #ifndef ...
    #define ...
    #else
    #error ...
    #endif

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par salseropom
    Pourquoi n'ai-je pas uniquement "fin du prgm 2" ?
    Parce que :

    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
     
    #include<stdlib.h>
    #include<stdio.h>
     
    /* Ici PI n'est pas déclarer donc on rentre */
    #ifndef PI
    /* On déclare PI */
    #define PI 3.14
    #error "fin du prgm 1"
    #endif
     
    /* Ici PI n'est pas déclarer donc on ne rentre pas*/
    #ifndef PI
    #define PI 3.15
    #error "fin du prgm 2"
    #endif
     
    /* Ici PI2 n'est pas déclarer donc on rentre */
    #ifndef PI2
    /* On déclare PI2 */
    #define PI2 PI+PI
    #error "fin du prgm 3"
    #endif

    Jc

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    merci ça marche. Oui bien sûr c'est de l'alog de base mais je ne connaissais pas les syntaxes

    #ifndef ...
    #define ...
    #else
    #error ...
    #endif
    Merci !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par salseropom
    merci ça marche. Oui bien sûr c'est de l'alog de base mais je ne connaissais pas les syntaxes
    Elles sont dans ton livre de C ou ici :

    http://publications.gbdirect.co.uk/c_book/chapter7/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. #define D3D_DEBUG_INFO
    Par moldavi dans le forum DirectX
    Réponses: 7
    Dernier message: 03/02/2005, 14h14
  2. INSO Filter : "USER-defined exception" avec ctx_do
    Par Wiztiti dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2004, 16h14
  3. USER DEFINE FONCTION : PB éxécution requête
    Par juelo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/01/2004, 11h12
  4. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45
  5. define avec GCC.
    Par vagabon dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/06/2003, 14h04

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