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:
1 2 3 4
| /**************** Commondef.h***********************/
//déclaration des variables
#define BUFFER_LENGTH 4096
static double voltagefft[BUFFER_LENGTH]; |
Code:
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:
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