Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c] variabili

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] variabili

    ciao a tutti
    Ho provato a fare qualche semplice programmino...mi confermate che si ottengono errori a mettere istruzioni prima della dicharazione di variabili?

  2. #2
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Certo, scusa ma che domanda è?
    Prova te stesso

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    scusa ma in java si poteva fare e io ero sicuro di aver capito che non ci fosse neanche in c questa necessità dato che avevo letto che le variabili sono prese in considerazione dopo il momento che sono state scritte.

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    In java e c++ si puo fare, in c le dichiarazione devono avvenire prima.

  5. #5
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    Bhè non so in java, ma in C, come in altri linguaggi, hai la necessità di allocarti in memoria lo spazio necessario per le tue variabili (che siano int, char o qualsiasi altra cosa) e poi di usarle
    Anzi il C, a differenza , ad esempio del Pascal, ti consente di dichiarare le costanti in una qualunque parte del codice e non in zone particolari.
    Ciao

  6. #6

    Re: [c] variabili

    Originariamente inviato da Lucked
    ciao a tutti
    Ho provato a fare qualche semplice programmino...mi confermate che si ottengono errori a mettere istruzioni prima della dicharazione di variabili?
    Dipende dallo standard.
    In ansi C99 si può fare questo
    codice:
    #include <stdio.h>
    
    int main()
    {
      printf("ciao ");
      
      int i = 10;
      printf("%d", i);  
    
      return 0;
    }
    in ansi C89 si può fare così
    codice:
    #include <stdio.h>
    
    int main()
    {
      printf("ciao ");
      
      {
        int i = 10;
        printf("%d", i); 
      }
    
      return 0;
    }

  7. #7
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262
    cosa cambia?
    L'uso delle parentesi graffe all'interno del main a che servono in questo caso?

  8. #8
    Originariamente inviato da gokan
    cosa cambia?
    L'uso delle parentesi graffe all'interno del main a che servono in questo caso?
    infatti cosa cambia??

    Mi piacerebbe saperlo,anche solo x curiosità! :gren:

    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    == stavo pensando ==
    forse nel c89 le var devono essere dichiarate e usate solo in "locale" ...cioè hanno visibilità non in tutta la funzione(in questo caso main) ma solo nel blocco dove sono state dichiarate

    E' solo una deduzione guardano il codice...aspetto conferma!

    grazie ancora
    ciauz
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #10
    Originariamente inviato da gokan
    cosa cambia?
    L'uso delle parentesi graffe all'interno del main a che servono in questo caso?
    In ansi C89 le variabili vanno dichiarate subito dopo l'apertura di un blocco { ... }
    per cui, se si ha la necessità di dichiarare variabili dopo avere eseguito alcune istruzioni (ad esempio per risparmiare memoria sullo stack)

    codice:
    int main()
    {
      int buffer[4096];
    
      /* richiama alcune funzioni */
    
      /* usa la variabile buffer */
    
      /* richiama altre funzioni */
    }
    in C89 si può riscrivere così
    codice:
    int main()
    {
      /* richiama alcune funzioni */
    
      {
        int buffer[4096];
        /* usa la variabile buffer */
      }
    
      /* richiama altre funzioni */
    }
    ma non così (questo è valido solo per C99 e C++)
    codice:
    int main()
    {
      /* richiama alcune funzioni */
    
      int buffer[4096];
      /* usa la variabile buffer */
    
      /* richiama altre funzioni */
    }

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.