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 :

instruction en langage c++


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut instruction en langage c++
    salut à vous tous :
    j'ai un programme en c++ et j'ai pas compri quelques instructions et j'ai meme cherché dans des cours mais je les ai pas trouvé, si quelqu'un peut me donner leur significations :
    #include<vcl.h>
    #pragma hdrstop
    **__fastcall
    il y a des instructions qui commencent par une ligne horizontale aussi????
    merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Citation Envoyé par dadou846 Voir le message
    #include<vcl.h>
    Cette instruction demande au préprocesseur d'inclure le fichier d'en-tête vcl.h au début de ce fichier. Un tour dans la faq te donnera des détails (chercher inclure et fichiers d'en-tête).

    Citation Envoyé par dadou846 Voir le message
    #pragma hdrstop
    #pragma c'est du typique Visual C++ (vcl.h, hein...), je ne sais pas quelle est la pragma hdrstop (fin d'inclusion de header, ou quelque chose comme ça peut-être).

    Citation Envoyé par dadou846 Voir le message
    **__fastcall
    Là on entre dans les finesses des instructions assembleur, me semble-t-il, et je suis totalement incapable de te renseigner .

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut, et bienvenue sur le forum.

    La directive #include "quelque_chose" ou #include <quelque_chose" est une instruction préprocesseur qui a pour but de faire connaitre au compilateur quelque chose qui est déclaré dans le "quelque_chose" et qui est nécessaire pour traiter le code en cours.

    Le préprocesseur va remplacer cette directive par le contenu du fichier donné entre guillemet ou entre chevrons.

    L'inclusion du fichier <vcl.h> a donc pour but de demander au préprocesseur d'insérer le contenu du fichier vcl.h, qui est un fichier d'en-tête nécessaire pour que le compilateur connaisse la bibliothèque graphique que tu utilise (la bibliothèque graphique "made in borland" )

    La directive #pragma a pour objectif de demander au compilateur de faire (ou de ne pas faire) certaines choses, mais est très dépendante du compilateur utilisé, sauf erreur #pragma hdrstop a pour but de demander au compilateur d'utiliser ce que l'on appelle des en-tête précompilés, afin de minimiser le temps de compilation.

    Pour le ** __fastcall, il manque sans doute ce qui se trouve à la ligne d'avant, et ce qui se trouve à la ligne d'après, mais, en gros:
    les deux étoiles "**" indiquent que ce qui sera renvoyé sous la forme d'un pointeur de pointeur et la ligne d'après devrait fournir le nom d'une fonction ou d'une méthode d'une classe particulière.

    Le terme __fastcall spécifie une convention d'appel qui, sauf erreur, indique que les différents paramètres doivent être placés dans un registre, autant que faire se peut.

    Tu trouvera d'autres informations sur hdrstop et sur fastcall sur le site de la msdn de microsoft
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sauf qu'en fait, ce n'est pas du Visual mais du Borland.
    • Il n'y a pas de vcl.h sous Visual, il s'agit de la Visual Component Library de Borland.
    • #pragma hdrstop n'est pratiquement jamais utilisé sous Visual, et n'est présent dans aucun modèle de fichier
    • __fastcall n'est pratiquement jamais utilisé non plus, alors que Borland l'utilise systématiquement pour ses événements;
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    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
    Par défaut
    Bonjour et bienvenu,
    Sans que cela soit obligatoire, le code est souvent scindé en deux partie : la déclaration et la définition. La déclaration sert juste à indiquer au compilateur ce qui existe: de quoi est constituée une classe, quelles sont les fonctions, quels sont les types etc... La définition contient le code qui réalise ce qui a été précédemment défini.
    On sépare les deux parties de façon suivante:
    -> Les fichiers d'en-tête contiennent habituellement les déclarations. Ce sont des fichiers qui se terminent par l'extension .h ou .hpp.
    -> Les fichiers sources se sont ceux qui contiennent les définitions. Ce sont les .cpp.
    Les fichiers sources comme les fichiers d'en-têtes incluent d'autres fichiers d'en-têtes quand ils ont besoin de connaître les définitions des autres modules.
    Citation Envoyé par dadou846 Voir le message
    #include<vcl.h>
    Ici on indique qu'on inclue le fichier de déclaration vcl.h. Il s'agit, je crois, d'un fichier spécifique au compilateur borland.

    Générer un projet (un exécutable, un librairie...) se déroule en plusieurs phases :
    1/ Chaque fichier de définition (les .c) est compilé pour donner du code objet. Ce sont en général des fichiers .o ou .obj; fichiers binaires qui contiennent du code et sont illisibles pour un personne bien formée
    2/ Les différents fichiers objets sont liés (ou linker) pour donner l'exécutable (ou la librairie...).
    La première phase, la compilation, se découpe elle aussi en 2 parties :
    1/ Le pre-processing : c'est une phase où aucun code n'est généré mais où on donne des indications pour le compilateur. Par exemple, c'est dans cette phase que sont traités les #define, les #includes, etc... Schématiquement, on peut dire que cette phase prend en entrée un fichier et donne en sortie le même fichier dans lequel des opérations ont été effectuées:
    -> les #include "en-tete.h" font qu'on recopie à la place de cette instruction tout ce qui a dans en-tete.h
    -> Les #define TUTU machin font que partout où on trouve TUTU, on le remplace par machin
    -> Les #pragma sont des directives qui donnent des instructions au pré-processeur.
    2/ La compilation : on utilise le fichier produit par la phase précédente pour générer le code exécutable.

    Citation Envoyé par dadou846 Voir le message
    #pragma hdrstop
    Il s'agit d'une directive du pré-processeur. Ces directives sont spécifiques aux compilateurs. Celle-ci concerne la gestion des en-têtes précompilés il me semble et pour un débutant, je dirais que pour l'instant ce n'est pas important.

    Citation Envoyé par dadou846 Voir le message
    **__fastcall
    Je doute que ce soit la ligne entière de ton code.
    __fastcall est un mot clé spécifique du compilateur Visual C++. Pour un débutant, je dirais que pour l'instant, il vaut mieux ne pas t'en soucier.

    Citation Envoyé par dadou846 Voir le message
    il y a des instructions qui commencent par une ligne horizontale aussi????
    Pour revenir à ta question initiale : oui des instructions peuvent commencer par '_' ou par '__' (2x '_'). La réponse est oui. Cependant, il n'est pas recommander de déclarer ses propres identifiants en débutant avec le caractère souligné. Ils sont en général réservés par les compilateurs pour les extensions qu'ils proposent.

    J'espère que ces premiers éléments vont te permettre de continuer à avancer.


    P.S. : tout vient à point à qui sait attendre

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Par défaut re:programmen en c++
    merci à vous tous, ça va bien m'aider.
    a+

Discussions similaires

  1. Langage à quatre instructions
    Par dva2tlse dans le forum Débuter
    Réponses: 1
    Dernier message: 18/08/2010, 10h35
  2. [Langage] Intérêt de l'instruction typedef en C++
    Par ram-0000 dans le forum Langage
    Réponses: 9
    Dernier message: 20/10/2008, 21h05
  3. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 13h16
  4. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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