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)[]" }Merci de m'expliquer que d' après le c++ une valeur static est accessible pour tout le programme !!!!!!
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 }
Que dois-je faire
Partager