Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [C] - error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before *

    Salve,
    sono novello del C, praticamente è la prima volta che programmo con questo linguaggio.
    stavo continuando la mia impresa con la creazione di alcuni applicativi che implementano un protocollo per gestire bene pacchetti UDP.
    Gestisco il tutto con una coda con le varie funzioni inserisciCoda, fuoriCoda, leggiCoda etc etc.

    L'unico problema l'ho incontrato con la funzione che restituisce un booleano: controlla se la coda è vuota controllando in cima alla coda e in tal caso mi restituisce true.

    codice:
    bool codaVuota(coda * val){
     	if(val == NULL){ 
     		return true; 
     		}
     	return (val->intesta==NULL);
    }
    erroe:
    Util.c:54: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘codaVuota’
    Un'altra cosa, se io la definisco come int e gli faccio restituire un numero il compilatore non da nessun problema.

    Qualcuno sa il perchè con il tipo bool non riece a compilare rilasciandomi quell'errore?

    Grazie,
    Aldo.

  2. #2
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    bhà...onestamente se nn vado errando il linguaggio C non prevede il tipo booleano...però si risolve questo problema facilmente usando gli interi...però...aspetta che ti da qualche consiglio qualcuno più esperto...

  3. #3
    Non tutti i compilatori C forniscono un tipo bool,
    Il tipo boolean non è nativo del linguaggio C, ma del C++.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    bene, ho deciso di usare 1 e 0 :P

  5. #5
    Prova così:
    codice:
    #if !defined bool
    typedef enum {
       false = 0,
       true,
       FALSE = 0,
       TRUE
    }bool;
    #endif
    
    /*...*/
    
    bool tua_funzione(...) /*...*/

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    Una domanda,
    definendo il tipo bool in quel modo assegni a 0 solo il valore di false&False e a true&TRUE qualsiasi altro valore intero?

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    Originariamente inviato da menphisx
    A true assegni 1
    ecco, volevo capire come ragiona il c con i tipi enumerativi.

    praticamente RISULTA qualcosa del genere?

    codice:
    typedef int bool;
    const bool false=0,true=1,FALSE=0,TRUE=1;
    perchè come lo hai scritto tu quelli che non hanno assegnamenti valgono valore_assegnamento_precedente+1?

    confermami questa vaga teoria


  9. #9
    Teoria confermata
    bastava fare:
    codice:
    printf("%d %d %d %d\n", false, true, FALSE, TRUE);

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.