ciao a tutti
Ho provato a fare qualche semplice programmino...mi confermate che si ottengono errori a mettere istruzioni prima della dicharazione di 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?
Certo, scusa ma che domanda è?![]()
![]()
Prova te stesso![]()
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.
In java e c++ si puo fare, in c le dichiarazione devono avvenire prima.
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
Dipende dallo standard.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?
In ansi C99 si può fare questo
in ansi C89 si può fare cosìcodice:#include <stdio.h> int main() { printf("ciao "); int i = 10; printf("%d", i); return 0; }
codice:#include <stdio.h> int main() { printf("ciao "); { int i = 10; printf("%d", i); } return 0; }
cosa cambia?
L'uso delle parentesi graffe all'interno del main a che servono in questo caso?
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...
== 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...
In ansi C89 le variabili vanno dichiarate subito dopo l'apertura di un blocco { ... }Originariamente inviato da gokan
cosa cambia?
L'uso delle parentesi graffe all'interno del main a che servono in questo caso?
per cui, se si ha la necessità di dichiarare variabili dopo avere eseguito alcune istruzioni (ad esempio per risparmiare memoria sullo stack)
in C89 si può riscrivere cosìcodice:int main() { int buffer[4096]; /* richiama alcune funzioni */ /* 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 */ }
codice:int main() { /* richiama alcune funzioni */ int buffer[4096]; /* usa la variabile buffer */ /* richiama altre funzioni */ }