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

  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, je reprends un code (écrit en C bien sûr) afin de l'améliorer. Il comme de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    il y a toute une série de #include<blabla> et de #include"blabla"
     
    #define Y0 0
    #define Y1 1
    #define Y2 2
     
    int main
    {
    blabla
     
    return 0;
    }
    les Y0, Y1 et Y2 sont des conditions initiales pour résoudre une équation. Ces données initiales dépendent elles-même de d'autres paramètres. Donc je me suis fait une fonction qui prends comme argument ces paramètres et me renvoie Y0, Y1 et Y2.

    J'ai donc deux questions :
    1) les variables Y0, Y1 et Y2 sont-elles définies que pour le fichier main.c ou bien sont-elles aussi définies pour d'autres fichiers ? Je pense (d'après mes tests) qu'elles ne sont valables que pour mon main.c (mais j'aimerais avoir votre confirmation).

    2) comment les modifier ? Dans mon main, j'ai par exemple envie de faire Y0++ mais j'ai l'erreur "Y0 undeclared".

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut
    Tu debutes ?

    les defines correspondent a des CONSTANTES. Le preprocesseur C va remplacer tous les Yx par leurs valeurs avant de compiler. Donc un Y0++ est completement insencé
    tu dois mettre plutot un : int y0 = ... dans ton main

    Pour ce qui est de la porté des define : les constantes Yx seront definies dans tous les fichiers qui incluent celui que tu nous montre

  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,

    Tu debutes ?
    oui

    Merci de ta réponse claire.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut
    je te conseil de mettre dans ton main :

    int y0 = Y0;
    int y1 = Y1;
    int y2 = Y2;

    et tu n'utilise ensuite que les y0, y1, y2 qui sont des VARIABLES que tu pourras modifier.

  5. #5
    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
    effectivement, c'est plus astucieux.

+ 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