Pagina 2 di 2
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 16:32
da elegos
nono funziona benissimo ^^ slo che è meno ordinato... a meno che non si usino solo all'interno di specifiche funzioni, le variabili dovrebbero sempre essere messe all'inizio... per ordine e pulizia (nel caso di modifiche anche pesanti al codice, magari non usi più variabili, e dove le vai a cancellare? all'inizio ^^)
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 20:20
da Andrea88
Ho installato turbo-c .. mi da errore se dichiaro non all'inizio!! Allora il mio prof aveva ragione!! (good)
Posto l'immagine
[img width=800 height=600]
http://img158.imageshack.us/img158/8263 ... atams2.png[/img]
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 20:26
da simo_magic
apparte che fa leggermente schifo quel compilatore...comunque...
usa almeno qualcosa di più compatibile...
tipo devc++...che oltre ad essere sotto gpl usa un port di gcc(il migliore compilatore secondo me)
detto questo...è il compilatore che non rispetta gli standard...se il tuo professore vi fa usare roba che non rispetta gli standard...bah... (mad)
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 20:40
da elegos
appunto in ISO/ANSI C è permesso... e non parlo di C++...
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 20:59
da Andrea88
simo_magic ha scritto:
apparte che fa leggermente schifo quel compilatore...comunque...
usa almeno qualcosa di più compatibile...
tipo devc++...che oltre ad essere sotto gpl usa un port di gcc(il migliore compilatore secondo me)
detto questo...è il compilatore che non rispetta gli standard...se il tuo professore vi fa usare roba che non rispetta gli standard...bah... (mad)
A scuola avevamo sia devc++ sia turbo-c .. io usavo turbo-c solo xkè aveva una bella guida .. cioè quando non conoscevo il nome di una funzione o una sintassi in neanke 30 sec avevo la risposta .. cmq ke delusione sapere ke ho passato 5 anni di superiori a compilare roba in un ide non standard

Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 21:03
da jepessen
Mica è l'IDE non standard, ma il compilatore...
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 21:05
da elegos
ed in ogni caso Dev-CPP ha una guida al C/C++... con tutte le funzioni standard...
Re: Grafica C in linux
Inviato: venerdì 27 luglio 2007, 21:20
da Andrea88
jepessen ha scritto:
Mica è l'IDE non standard, ma il compilatore...
si scusa il compilatore
ed in ogni caso Dev-CPP ha una guida al C/C++... con tutte le funzioni standard...
Non la trovavo :P .. cmq adesso non mi serve più .. qua a casa ho internet e con google trovi tutto (good)
Re: Grafica C in linux
Inviato: sabato 28 luglio 2007, 13:25
da b3knight
Mi inserisco nella discussione... Ho da poco sostenuto l'esame di C all'uni ed il mio prof ha ripetuto più volte che si possono dichiarare variabili non all'inizio, ma in questi casi la compilazione NON E' GARANTITA! Cioè: funzionare magari funziona, ma soltanto grazie a un compilatore che riconosce questo errorino e lo corregge.
Qualcuno ha scritto: "quel compilatore fà schifo" (non so a quale si riferisse); forse a volte può essere utile compilare con compilatori totalmente essenziali, in modo da avere un codice sicuramente pulito e corretto.
Ricapitolando, la dichiarazione di variabili non all'inizio è una pratica diffusa, che magari funziona, ma NON rispetta le specifiche del C!
Re: Grafica C in linux
Inviato: sabato 28 luglio 2007, 13:59
da simo_magic
l'ho scritto io che il compilatore di turboc fa schifo...
ok ai compilatori che rispettano solo gli standard...e infatti io ho proprio consigliato quello che li rispetta tutti! gcc!!
ma non è mica scritto da nessuna parte che io sappia che la specifica ufficiale costringa a scrivere tutte le variabili all'inizio del codice...così si intasa solo la memoria se la variabile servisse solo all'interno di un blocco...
e se avessi bisogno di 2 variabili di nome "abc"?
se le dichiaro all'inizio mi si impalla il compilatore...invece se le dichiaro all'interno della funzione no ne posso dichiarare 2...
Re: Grafica C in linux
Inviato: sabato 28 luglio 2007, 14:05
da wally67
penso quindi di aver avuto un po' di ragione anche io :P
comunque grazie per aver aiutato anche me a chiarire alcuni dubbi
in merito a quanto dice simo
ma non è mica scritto da nessuna parte che io sappia che la specifica ufficiale costringa a scrivere tutte le variabili all'inizio del codice...così si intasa solo la memoria se la variabile servisse solo all'interno di un blocco...
cosi' sembra che se uso una variabile in un blocco questa non viene allocata all' inizio della funzione. invece non e' cosi', almeno per il compilatore che ho usato io (microcontrollori freescale) di cui sono anche andato a spulciarmi l' assembler ::)
wally 67 (e sono tanti)
Re: Grafica C in linux
Inviato: sabato 28 luglio 2007, 14:15
da simo_magic
no mi spiego...
Codice: Seleziona tutto
#include <stdio.h>
int main(){
int a;
a=2;
if(a==2)
{
int b;
b=10;
printf("%d",b);
}
else
{
int b;
b=5;
printf("%d",b);
}
}
non voglio nemmeno sapere come lo compila turboc o altri compilatori non standard...so solo che gcc lo compila e in output mi da 10 come è giusto che sia senza nemmeno fare un warning...perchè è tutto regolare!
Re: Grafica C in linux
Inviato: sabato 28 luglio 2007, 18:57
da wally67
forse non sono stato chiaro. dal tuo codice sembra che tu ti aspetti qualcosa del tipo:
Codice: Seleziona tutto
//int main() {
//int a;
push ax
//a=2;
mov ax, 2
mov (sp), ax
//if(a==2)
cmp ax, 2
bne _else
//int b;
push ax
//b=10;
mov ax, 10
mov (sp), ax
//printf ... questa risparmiamela :-)
jmp _end
/else
_else
//int b;
push ax
//b=5;
mov ax, 5
mov (sp), ax
//printf ... anche questa
_end
invece probabilmente avrai
Codice: Seleziona tutto
//int a;
push ax
push ax
push ax
//a=2;
mov ax, 2
mov (sp-6), ax
//if(a==2)
cmp ax, 2
bne _else
//int b;
//b=10;
mov ax, 10
mov (sp-4), ax
//printf ...
jmp _end
/else
_else
//int b;
//b=5;
mov ax, 5
mov (sp-2), ax
//printf ...
_end
con addirittura un uso maggiore di memoria. per lo meno questo e' quello che ho visto con il compilatore della freescale
wally 67 (e sono tanti)
p.s.
pero' la prossima volta non farmi fare tutta questa fatica

Re: Grafica C in linux
Inviato: domenica 29 luglio 2007, 22:27
da Andrea88
Quindi meglio programmare in assembler per avere il codice piu efficente possibile :P
Re: Grafica C in linux
Inviato: lunedì 30 luglio 2007, 8:51
da wally67
oh andrea, adesso bisogna fare attenzione alle virgole
occorre chiarire il concetto di efficienza: per ridurre la dimensione del codice l' assembler e' l' ideale (in alcuni casi e' indispensabile, basta pensare che i context-switch vengono fatti solo in assembler). ma la struttura del programma, in termini di flessibilita', manutenzione, leggibilita' e anche portabilita' (soprattutto) e' decisamente meglio scriverla in un linguaggio ad alto livello (C, C++, Pascal, ... ma io preferisco C/C++ :P)
per il resto basta conoscere come vanno le cose. io la pensavo come simo fino a quando non ci ho sbattuto il naso. poi puo' anche essere che un altro compilatore si comporti in modo diverso. come la faccenda della dichiarazione variabili in C ad inizio corpo. a proposito. io il C lo ho studiato sul kerningam-ritchie ma questa storia della dichiarazione me la sono proprio persa. e' cosi' o manca sul serio?
wally 67 (e sono tanti)
Re: Grafica C in linux
Inviato: lunedì 30 luglio 2007, 17:58
da ted
comunque anche il gcc oppure g++ non te lo compilano se usi l'opzione -pedantic oppure -ansi oppure tutte e due assieme
lo standar c ufficiale sono le variabili al inizio e conviene sempre compilare un codice con -ansi se si vuole che funzioni su tutti i compilatori.
Mi sa pero che anche sul turbo c ce il modo di non farli segure lo standar bisognerà cambiare le opzioni di compilazione.
Re: Grafica C in linux
Inviato: mercoledì 1 agosto 2007, 13:57
da Andrea88
Ma lo standard ansi dov'è che c'è scritto?
Re: Grafica C in linux
Inviato: lunedì 6 agosto 2007, 10:36
da simo_magic
Andrea88 ha scritto:
Ma lo standard ansi dov'è che c'è scritto?
tu vuoi quindi leggere la specie di "regolamento di utilizzo" del c che fa parte degli standard ansi?
Re: Grafica C in linux
Inviato: martedì 7 agosto 2007, 0:25
da Andrea88
Si tutte le norme/regole ke permettono ad un programma di seguire lo standard ansi .. cmq ho già trovato

Re: Grafica C in linux
Inviato: martedì 7 agosto 2007, 0:31
da Guiodic
Io mi ricordo cosa disse il mio prof quando fece la prima lezione di C :
Ragazzi, avete imparato con fatica le regole del Pascal. Adesso prendete tutto ciò che sapete e dimenticatelo
