Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C] Definizione tipo boolean

    Ciao a tutti!

    Mi son appena iscritto, sto studiando informatica (programmazione C) per un esame.

    Ho letto sulle dispense che il c permette la definizine del tipo boolean in questo modo:

    typedef enum {false, true} boolean;

    ..Ma sto provndo a metterlo nel compilatore (devc++) e mi trova un errore proprio in quella riga:
    --------------
    #include <stdio.h>
    #include <stdlib.h>
    typedef enum {false, true} boolean;
    main()
    {
    }
    --------------

    ...dice 'expected identifier before false'
    cosa sto sbagliando ?

    Grazie!

  2. #2
    Prova con:
    codice:
    #if !defined true && !defined false
    #define true 1
    #define false 0
    #endif
    
    typedef boolean int;
    
    int main(void){
    
       boolean b = true;
    
    }
    o con:
    codice:
    enum boolean{
       false = 0,
       true
    };
    
    typedef boolean enum boolean;
    
    int main(void){
    
       boolean b = true;
    
    }
    Il primo metodo è un po' più veloce durante l'esecuzione.
    Comunque in C non esiste il tipo boolean, semplicemente tutto ciò che è diverso da zero è vero, se no è falso.
    Semplice e chiaro


  3. #3
    Non ne cavo piede lo stesso, mi da sempre errori =/

    comunque grazie per la risp, in effetti lasciam perdere, è inutile definirlo basta lavorare con gli 1 e 0 come hai detto tu

  4. #4
    Ho appena provato a definire un'altra cosa con enum..non me la fa proprio definire..

    ma è normale che non mi faccia compilare una stringa simile ?

    typedef enum {'benzina','gasolio','gas'} alimentazione;


    nelle esercitazioni del tutor viene usato spesso enum (scritto esattamente così), mi infastidisce non poterne verificare il funzionamento..

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    la scrittura corretta è:

    typedef enum {benzina,gasolio,gas} alimentazione;

    in C il carattere ' serve per indicare i char.
    quelli che stai dichiarando sono elementi dell'enum (non char e neanche stringhe).

  6. #6
    grazie mille! è vero, ora funziona

    ho notato che il boolean non mi funziona per via delle parole "false" e "true"...evidentemente son parole che hanno gia un loro significato..se ci metto "falso" e "vero" lo compila correttamente!

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da bluelettrico
    ho notato che il boolean non mi funziona per via delle parole "false" e "true"...evidentemente son parole che hanno gia un loro significato
    Infatti in C++ 'true' e 'false' sono i valori literal del tipo 'bool'
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    Originariamente inviato da andbin
    Infatti in C++ 'true' e 'false' sono i valori literal del tipo 'bool'
    Si, ma qua si parlava di C.
    Quindi è un problema nell'IDE.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da menphisx
    Si, ma qua si parlava di C.
    Quindi è un problema nell'IDE.
    Appunto, la deduzione logica è che il codice nel post iniziale sia stato compilato come C++ e non C.

    Infatti una dichiarazione come:

    typedef enum {false, true} boolean;

    compila tranquillamente come C ma non come C++.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  10. #10
    Già.. Io sto usando dev c++, c'è un modo per fargli capire che sto programmado in C ?

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.