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

Bibliothèques Discussion :

2 Define est ce que je peut les mettre dans un entete séparé !


Sujet :

Bibliothèques

  1. #1
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut 2 Define est ce que je peut les mettre dans un entete séparé !
    Bonjour

    je suis sur un program test pour la communication entre le Port rs232 et une machine electronique .

    j'ai ce code :

    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>

    /*=============================================================================
    Définition de constantes
    =============================================================================*/
    #define RX_SIZE 4096 /* taille tampon d'entrée */
    #define TX_SIZE 4096 /* taille tampon de sortie */
    #define MAX_WAIT_READ 5000 /* temps max d'attente pour lecture (en ms) */
    Est ce que je peut mettre les constant dans un .h et je l'es appelle directement en include ?

    s'il vous plais aidez moi .

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Est ce que je peut mettre les constant dans un .h
    Oui.

    J'avoue que plutôt que de poser la question sur le forum, mettre les #define dans un fichier d'en-tête et faire une compilation (pour voir que ça fonctionne) aurait été plus simple et plus rapide...

  3. #3
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    C'est ce que je sais pas faire c'est de faire un .h
    Alors ade moi a mettre cela dans un .h et de les appéleez depuis mon .c

    Merci

  4. #4
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    bah c'est simple tu créé un fichier .h par exemple entete.h ensuite tu l'ouvre, tu mets tes defines dedans puis tu as deux solutions pour l'appeler :
    - soit tu ne t'en serviras peut alors tu le mets dans le dossier de ton projet et tu rajoute dans les fichier en ayant besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "entete.h"
    - soit tu as révolutionné le C avec tu vas t'en servir dans beacoup de progs, tu le mets avec les autres entetes classique de ton compilateur(sous Code::Blocks : CodeBlocks/include/)
    et ensuite tu rajoute cette ligne dans les fichiers ayant besoin de ton entete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <entete.h>
    P-S : Si tu ne sais pa où sont les fichier d'entêtes de ton compilateur, effectue une recherche des fichiers d'entete classique tels que stdio.h et tu trouveras en même temps le dossier qui contient les entetes de ton compilateur .
    Omnes Vulnerant Ultima Necat
    Bye

  5. #5
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Bonjour .

    Ca veux dire que
    #include <entete.h>
    et
    #include "entete.h"

    ce n'est pas la meme chose ?

    Sinon ici si je met les define dans une bibliotheque , le probleme serai :

    Comment les appeller depuis le Main prog.c

    Voila

    Citation Envoyé par Shugo78
    bah c'est simple tu créé un fichier .h par exemple entete.h ensuite tu l'ouvre, tu mets tes defines dedans puis tu as deux solutions pour l'appeler :
    - soit tu ne t'en serviras peut alors tu le mets dans le dossier de ton projet et tu rajoute dans les fichier en ayant besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "entete.h"
    - soit tu as révolutionné le C avec tu vas t'en servir dans beacoup de progs, tu le mets avec les autres entetes classique de ton compilateur(sous Code::Blocks : CodeBlocks/include/)
    et ensuite tu rajoute cette ligne dans les fichiers ayant besoin de ton entete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <entete.h>
    P-S : Si tu ne sais pa où sont les fichier d'entêtes de ton compilateur, effectue une recherche des fichiers d'entete classique tels que stdio.h et tu trouveras en même temps le dossier qui contient les entetes de ton compilateur .

  6. #6
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    non en effet :
    et
    ne sont pas pareil, le premier cas cherhce un fichier à inclure qui se trouve dans le dossier du projet(du main.c) et le deuxième cas cela cherche un fichier dans le répertoire des entêtes de ton compilateur.

    Si tu veux mettre ton .h dans une bibliothèque, tu dois te débrouiller :
    - soit tu explique où il faut placer les librairie
    - soit tu cré un installateur qui les places automatiquement(comme installateur efficace tu as InnoSetup qui en plus est OpenSource, mais que pour Windows )
    Omnes Vulnerant Ultima Necat
    Bye

  7. #7
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Les commande des .h je veux les expliquer sur le .c

    comment je fait ?

  8. #8
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Je n'ai pas bien copris....
    Tu veux utiliser dans les .h des fonctions que tu déclares et dont le prototype et dans les .c ?
    C'est un puet contraire a l'ordre logique des choses mais si tu y tient il te suffit de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "fichier.c"
    dans ton .h.
    Mais j'ai peut être mal compris....
    Omnes Vulnerant Ultima Necat
    Bye

  9. #9
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Ce que je veux dire c'est que :
    Dans un .h en met des define !!
    alors qu'on veux mettre les define dans .h et l'appeller depuis .c

    Ca veux dire par example :

    Les define dans vitesse.h
    et l'appeller dans le .c


    #include <vitesse.h>

    Et pour appeller les function de cette bibliotheque comment je fait ?

    Merci

  10. #10
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Ah d'accord eh bien tu écrit tes fontcion dans vitesse.h et tu inclus vitesse.h et tu pourras utiliser les fonctions écrites dans vitesse.h
    Omnes Vulnerant Ultima Necat
    Bye

  11. #11
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Merci bien !


    alors que maintenant les function , est ce que je peut utiliser mes propre commande sur le .c ?

  12. #12
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Si tu as inclus le bon .h oui.
    Omnes Vulnerant Ultima Necat
    Bye

  13. #13
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Mais est ce qu'on peut mettre nos propre commande ?

    Explique moi s'il vous plais !

  14. #14
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    bah oui, tu écris le prototype de ta fonction et ta fonction dans ton .h et ensuite tu l'utilise, exemple, essaye ce code :
    fichier main.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
    15
    16
     
    #include <stdlib.h>
    #include <stdio.h>
    /* #include "header.h" ou #include <header.h>(au choix selon l'endroit où il est placé) */
    #include "header.h"
     
    int main(int argc, char * argv[])
    {
     puts("Appel à la fonction blabla du fichier header.h");
     /* La fonction blabla qui est déclaré et écrite dans le fichier d'en tête est utilisée, on considére quelle ne prend aucun argument */
     blabla();
    puts("Appel à la fonction blabla 2du fichier header.h");
    /* de même ici où blabla2 ne prend aucun argument */
    blabla2();
    puts("Tout marche pour le mieu :-) ");
    }
    fichier header.h
    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
     
    #include <stdlib.h>
    #include <stdio.h>
     
    int blabla();
    int blabla2();
     
    int blabla()
    {
     int i=0;
     puts("Quel âge avez vous ?");
     scanf("%d", i);
     puts("Oh vous avez %d ans !");
     if(i<10)
      {
       puts("Vous êtes petit ;)");
      }
    else if(i>10)
      {
       puts("Vous êtes grand :-)");
      }
    }
     
    int blabla2()
    {
     puts("De quoi allons nous parler aujourd'hui ?");
     puts("Allez de Paris Hilton !");
     puts("Saviez vous quel retournez en prison ?");
     puts("Ah lalalala, pfff.... ");
     puts("Ah bientôt pour faire la causette;)");
    }
    Voilà as-tu compris ?
    P-S : J'utilise scanf car je n'ai pas beacoup de temps mais je déconseille cette fonction .
    Omnes Vulnerant Ultima Necat
    Bye

  15. #15
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Ca fait un petit peu mal aux yeux

    - On inclut pas de fichier C. La raison principale est qu'un fichier source sera compilé en une unité de compilation (autant sémantique que pratique). L'inclusion de fichier source (*.c) est réellement à proscrire.

    - On ne met pas de code dans les en-têtes, pour ce qui est des fonctions on mettra seulement les déclarations de fonctions (leur prototypes).

    cf. le très bon site d'Emdel (Emmanuel Delahaye) :

    http://emmanuel-delahaye.developpez....ganiser_source

    Même si ces règles ne font pas partie d'une norme ou d'un standard, c'est la garantie d'un code source harmonisé, facile à entretenir, à relire et qui facilite le travail (perso ou en équipe). Je ne jette la pierre à personne, on doit bien débuter un jour ou l'autre, mais mieux vaut commencer en suivant les conseils de gens comme Emmanuel qui connaissent très bien leur affaire. Faites le tour de son site ça vaut vraiment le coup.

  16. #16
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Où est ce que j'ai niclu un .c ?
    C'est juste un exemple....., la demande originale ne concernait que des #defines.
    en quoi ça fait mal aux yeux ?
    Omnes Vulnerant Ultima Necat
    Bye

  17. #17
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    J'ai rien compris de ce que vous venez de dire !

  18. #18
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    C'est pas important, c'est Neitsa qui crititque le raccourci que je fait dans mon explication pour te simplifier les choses. Et il te conseille(et je suis d'accord) le site d'Emmanuel :
    http://emmanuel-delahaye.developpez.com/
    Omnes Vulnerant Ultima Necat
    Bye

  19. #19
    Débutant Avatar de ..::snake::..
    Inscrit en
    Mai 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 318
    Points : 120
    Points
    120
    Par défaut
    Mais moi j'utilise

    #define

    Votre example ne contient pas cela , et je vous demande de m'expliquer ce que fait #define !

    merci

  20. #20
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    #define fait le même chose, ou presque, cela définit soit une variable soit ce que l'on nomme un macro(une sorte de fonction).
    Omnes Vulnerant Ultima Necat
    Bye

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/04/2013, 18h00
  2. Est-ce que ca existe les constructeurs abstraits ?
    Par Invité dans le forum Delphi
    Réponses: 2
    Dernier message: 19/05/2007, 11h19
  3. est ce que postgresql peut s'installer sur un FAT32 ??
    Par mehdi_swatch dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 31/03/2006, 09h57
  4. [MySQL] Est-ce que php supporte les requêtes imbriquées ?
    Par dahan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/03/2006, 18h50
  5. Est ce que on peut utiliser mysql5 en production
    Par amika dans le forum Installation
    Réponses: 7
    Dernier message: 12/09/2005, 15h21

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