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 :

question sur l'utilisation du mot clé extern


Sujet :

C

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 49
    Par défaut question sur l'utilisation du mot clé extern
    Bonjour,
    J'essai d'apprendre a utiliser le mot clé "extern", mais j'ai une erreur à la compilation :

    1>main.obj : error LNK2019: unresolved external symbol "int __cdecl testStaticVar(void)" (?testStaticVar@@YAHXZ) referenced in function _main
    1>C:\Users\Sébastien\Desktop\test C pur\langage C test\Debug\langage C test.exe : fatal error LNK1120: 1 unresolved externals

    test.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef TEST_H
    #define TEST_H
     
    extern int a ;
    extern int testStaticVar();
    // int testStaticVar()
    // {
    // 	int add = 1000 ;
    // 	add += 1;
    // 	return add ;
    // }
    #endif
    test.c :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "test.h"
     
    int a = 1000 ;
    //a = 1000 ;
     
    int testStaticVar()
    {
    	static int add = 1000 ;
    	add += a;
    	return add ;
    }

    main.cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <iostream>
    #include "test.h"
    using namespace std;
     
     
    void main()
    {
    	cout<<testStaticVar()<<endl ;
    	cout<<testStaticVar()<<endl ;
    	cout<<testStaticVar()<<endl ;
    	cout<<testStaticVar()<<endl ;
    }
    Est il possible de ne pas mettre la définition de la fonction dans le .h mais juste son prototype et la définition dans le .c ? Si oui comment faut il faire ?

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Si vous renommez le fichier test.c en test.cpp, et que vous recompilais le tout ça fonctionne.

    Vous mélangez C et C++.

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

Discussions similaires

  1. Question sur l'utilisation de wget
    Par berry dans le forum Réseau
    Réponses: 7
    Dernier message: 24/05/2007, 22h46
  2. Question sur l'utilisation du popupMenu
    Par Jayceblaster dans le forum Delphi
    Réponses: 2
    Dernier message: 25/07/2006, 10h59
  3. question sur l'utilisation d'une listBox
    Par Mickey.jet dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 17h57
  4. Question sur l'utilisation du mot réservé static
    Par flash2590 dans le forum Langage
    Réponses: 4
    Dernier message: 10/04/2006, 00h20
  5. [Framework] Questions sur l'utilisation de spring
    Par mlequim dans le forum Spring
    Réponses: 10
    Dernier message: 01/02/2006, 15h27

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