Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316

    [C] Risolvere error: ‘nCards’ undeclared (first use in this function)

    codice HTML:
    #define CONVERT_CARDS( c, n )                   \
        MACRO_START                                 \
        INT32 nCards[ n ];                          \
                                                    \
        for ( INT32 xyz = 0; xyz < n; xyz++ ) {     \
            nCards[ xyz ] = nDeck[ cards[ xyz ] ];  \
        }                                           \
                                                    \
        fast_sort( nCards, n );                     \
        MACRO_END
    
    // [ ... ]
    
    inline VOID check_3_cards(
        const INT32* cards, handDetail* details, const INT32* points )
    {
        CONVERT_CARDS( cards, 3 );
    
        if ( nCards[ 1 ] != nCards[ 2 ] && nCards[ 1 ] != nCards[ 0 ] ) {
        
        // [ ... ]
    Scusate ma dove sbaglio?

    EDIT:

    il problema è risolto se tolgo MACRO_START, e MACRO_END, che equivalgono a:

    #define MACRO_START do {
    #define MACRO_END } while( 0 )

    qualcuno mi può spiegare il perchè? (compilatore gcc)

    Immagino perchè lo riconosca dentro "un blocco", solo che gcc non dovrebbe togliere in automatico il "do while" ?
    Ultima modifica di zacca94; 31-08-2017 a 05:56 Motivo: correzione

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    up

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Perché togliere in automatico il do while? Per quale motivo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Così mi è stato detto o così male ricordo, poco importa il fine è lo stesso, cioè ho scritto del codice non funzionante.

    Ho risolto, togliendo la variabile dallo scope del do while...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.