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 :

définition de __cplusplus


Sujet :

C++

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut définition de __cplusplus
    je vois souvent :
    __cplusplus
    comme par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #ifdef __cplusplus
    # define __BEGIN_DECLS extern "C" {
    # define __END_DECLS }
    #else
    A quoi cela correspond? Est-ce une macro définie par défaut?
    Je pose cette question parce qu'une fois j'avais défini une variable __cplusplus et ca causait des erreurs. J'ai jamais su pourquoi, jusqu'a ce que j'ai vu __cplusplus dans un programme.

  2. #2
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Si cette chose s'utilise par un #if ou #ifdef ... c'est une constante de précompilation.

    Trois choses peuvent les définir :
    * #define MA_MACRO avec une valeur optionnelle
    * option du compilateur
    * macro prédéfinie par défaut

    Celle qui commence par "__" à de forte chance d'etre une macro par défaut..

    Un petit lien qui peut t'aider : http://msdn.microsoft.com/fr-fr/library/b0084kay.aspx
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  3. #3
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    __cplusplus est défini par défaut pour les fichiers à compiler en C++.
    Le bout de code que tu as mit permet d'inclure des sources C dans un programme potentiellement en C++.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #ifdef __cplusplus  // On est en C++
    # define __BEGIN_DECLS extern "C" {
    # define __END_DECLS }
    #else               // On est en C
    # define __BEGIN_DECLS
    # define __END_DECLS
    #endif
     
    #__BEGIN_DECLS
    #include "Cfile1.h"
    #include "Cfile2.h"
    #__END_DECLS
     
    // ...
    Ce qui donnera en C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    extern "C" {
    #include "Cfile1.h"
    #include "Cfile2.h"
    }
    Et en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include "Cfile1.h"
    #include "Cfile2.h"

Discussions similaires

  1. Réponses: 21
    Dernier message: 09/08/2007, 11h46
  2. Réponses: 2
    Dernier message: 29/07/2003, 12h52
  3. [Sybase] Définition des symboles
    Par SoaB dans le forum Sybase
    Réponses: 5
    Dernier message: 19/03/2003, 23h06
  4. Définition de "Métalangage"
    Par No dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 19/07/2002, 14h05

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