Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    5

    C - problema passaggio parametri di tipo bool

    Ciao a tutti

    Mi da un erroe durante la compilazione "syntax error before "var" "...non riesco a passare una variabile d tipo bool.grazie

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    void vis(bool var);
    
    int main()
    {
      
      vis(true);
      
      system("PAUSE");	
      return 0;
    }
    
    void vis(bool var)
    {
      if(var)
        printf("ciao");
    }

  2. #2
    In C89 (quello attualmente più impiegato) i bool non esistono.
    In C99 esistono, ma devi includere stdbool.h.

    In ogni caso l'uso della system è criminale.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    5
    Originariamente inviato da MItaly
    In ogni caso l'uso della system è criminale.
    non capisco questa frase ???!!!

    grazie cmq per la risp

  4. #4
    Originariamente inviato da jadugar
    non capisco questa frase ???!!!
    http://forum.html.it/forum/showthrea...8#post13161198
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    5
    Originariamente inviato da MItaly
    http://forum.html.it/forum/showthrea...8#post13161198
    1)senza quello il programma si chiude subito...cio è..appare e scompare subito(dopo neanche un1= secondo)..

    2)Quindi senza imporare quella libreria non posso usare proprio il tipo bool???oppure non posso soltanto passarlo come parametro??

    grazie ciao

  6. #6
    Originariamente inviato da jadugar
    1)senza quello il programma si chiude subito...cio è..appare e scompare subito(dopo neanche un1= secondo)..
    codice:
    puts("Premere Invio per uscire...");
    getchar();
    oppure imposta un breakpoint nel debugger sul return finale.
    2)Quindi senza imporare quella libreria non posso usare proprio il tipo bool???oppure non posso soltanto passarlo come parametro??
    Come già detto, in C89 il bool non esiste, per cui non lo puoi usare da nessuna parte; di fatto te lo puoi "inventare" con un enum e un typedef:
    codice:
    enum MyBool
    {
        false=0,
        true=1
    };
    
    typedef short bool;
    oppure
    codice:
    typedef enum
    {
        false=0,
        true=1
    } bool;
    .
    Con la seconda possibilità il tuo bool può assumere solo i valori true/false ma non si può convertire implicitamente un intero qualunque in un bool, mentre nel primo caso il tuo bool può contenere anche altri numeri (per cui userai true solo in assegnamento, mai in confronto) ma il cast implicito da altri tipi interi è possibile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Originariamente inviato da jadugar
    1)senza quello il programma si chiude subito...cio è..appare e scompare subito(dopo neanche un1= secondo)..
    puoi lanciarlo da linea di comando:
    codice:
    C:\> your_program.exe
    Hello I am a very fast program; bye bye..
    C:\>

  8. #8

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.