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 :

static const et taille de tableau


Sujet :

C++

  1. #1
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut static const et taille de tableau
    Bonjour,
    j'essaye d'utiliser un attribut d�clar� en "static const" comme taille de tableau.
    Dans le header :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private:
    	// --- ATTRIBUTES --- //
    	/*! maximum size of the buffer, specified by the NMEA protocol */
    	static const int m_MaxSize;
    	/*! buffer of the frame. It contains the Ascii coded chars of the 
                    NMEA frame . */
    	char m_Frame[m_MaxSize];
    dans le fichier d'impl�mentation:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    const int GPSFrame::m_MaxSize = 80;
    j'utilise Visual C++ 6.0 avec XP, l'erreur remont�e :

    d:\continuus\sources\engine\gps\gpsframe.h(24) : error C2057: expected constant expression
    d:\continuus\sources\engine\gps\gpsframe.h(24) : warning C4200: nonstandard extension used : zero-sized array in struct/union
    alors peut �tre qu'il est �vident que cela ne peut marcher, mais moi un truc m'�chappe...

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Il faut d�clarer et d�finir ta constante en un seul coup

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    static const int m_MaxSize = 80;
    Mais je crois que �a ne marchera quand m�me pas avec VC6

  3. #3
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    effectivement, �a ne marche pas...
    il me reste que les #define, tant pis !

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    Le 'enum hack' est quand m�me pr�f�rable � un #define. Ca devrais passer avec VC 6
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct A
    {
      enum {N=80};
    };
     
    int main()
    {
      int array[A::N];
    }
    Cela dit, il me semble que les membres constants �taient correctements pris en compte dans VC6. A condition de fixer leur valeur dans le fichier d'impl�mentation et non dans l'en-t�te (ancienne norme).

Discussions similaires

  1. R�ponses: 69
    Dernier message: 12/09/2014, 14h47
  2. static const en tableau ?
    Par Glandelf dans le forum D�buter
    R�ponses: 10
    Dernier message: 10/12/2013, 10h57
  3. R�ponses: 2
    Dernier message: 30/10/2006, 16h40
  4. R�ponses: 1
    Dernier message: 23/09/2006, 00h41
  5. [VBA-E] taille du tableau non connu
    Par Invit� dans le forum Macros et VBA Excel
    R�ponses: 21
    Dernier message: 26/07/2005, 15h51

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