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 :

Portée des variables "static"


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    aucune
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Portée des variables "static"
    Je travaille avec Qt C++5.3 Comment lire une table déclarée static double dans n' importe quel classe du programme
    voici en exemple le problème


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /**************** Commondef.h***********************/
    //déclaration des variables
    #define BUFFER_LENGTH 4096
     static double voltagefft[BUFFER_LENGTH];

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /****************** uanalyseraudioinput.cpp********************/
    #include "uAnalyserAudioInput.h"
    #include "CommonDefs.h"
    void uAnalyserAudioInput::bufferUpdated(qint64 bytesWritten){
    for (int i=0,j=0; i< m_bufferLength; i++, j+=2){
    (*voltage)[i] = (double)(outputByteArray->at(j+1)*256 + outputByteArray->at(j))/32767.0;
    voltagefft[i ] = (*voltage)[i]; // ici initialisation de la table
     
    qWarning()<< i<< voltagefft[i];  // ICI la table  "voltagefft[]"  a bien les valeurs de  "(*voltage)[]"
    }
    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
    //autre fichier, autre classe ICI toutes les valeurs sont à zero
    /*******************unalyserchannel.cpp**********************/
    #include "uanalyseraudioinput.h"
    #include "uanalyserchannel.h"
    #include "CommonDefs.h"
     
    void uAnalyserChannelTrace::calculatePainterPath(){
    for (int i=1, j=1; j < sweep_bound ; i++,j= j+a) {
     
            x_coord = j; //* (u_Sweep_pix/timeBase);
             y_coord = voltagefft[i] *u_Sweep_pix/yGain;
            painterPath.lineTo(x_coord, y_coord );
     
     qWarning()<< i<< voltagefft[i];  // ICI  PROBLEME : TOUTES LES VALEURS SONT A ZERO
        }
    Merci de m'expliquer que d' après le c++ une valeur static est accessible pour tout le programme !!!!!!
    Que dois-je faire

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 427
    Points : 43 044
    Points
    43 044
    Par défaut
    Tu la déclares dans ton main.cpp, et tu la redéclare dans les .h ou tu en a besoin avec le préfixe extern
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Script shell : afficher le contenu des variables entre simple quote
    Par mualki dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 23/01/2010, 00h14
  2. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  3. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05

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