Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [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

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 © 2025 vBulletin Solutions, Inc. All rights reserved.