Newsgroup: it.comp.lang.c
Titolo: Compilatore

Se ne è già parlato, ma molto tempo fa e magari qualcosa è cambiato...
Mi potreste indicare un compilatore free per c che giri sotto windows. Non
ho nessuna particolare esigenza: voglio solo un buon compilatore per
iniziare a scrivere programmini semplicissimi.
Da post abbastanza vecchi ho trovato questi:
DJGPP
LCC
Turbo C
Sono ancora validi o me ne consigliereste qualche altro?
Grazie mille
ciao ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Visual C++ 2008 Express Edition.

> Visual C++ 2008 Express Edition.
Ma non fa niente che č c++? un compilatore c++ puņ compilare perfettamente
una sorgente scritta in c?
Grazie


 una sorgente scritta in c?
Tra l'altro ho appena visto che sul sito
http://www.microsoft.com/express/vcsharp/Default.aspx
oltre a visual c++ c'č anche visual c#.
Forse č meglio quest'ultimo per programmare in c?



Visual C++ puo' compilare programmi C89.
Il Visual C# penso compili solo programmi scritti in C#.

 Il Visual C# penso compili solo programmi scritti in C#.
Ma C# è uguale a C?
Grazie ancora è scusami per il disturbo


 Ma C# è uguale a C?
No. Sono due lingue diverse.
cc

 windows.
http://gcc.gnu.org/install/binaries.html
cc

 cc
Ottimo: mi sono appena scaricato 100 e passa MB che ora butterò...
Grazie mille anche per il suggerimento di gcc, che in effetti mi sembra
molto più leggero dei compilatori microsoft.
Ciao ciao


 Forse č meglio quest'ultimo per programmare in c?
No. C# e' un linguaggio completamente diverso.
In realta' anche C++ e' un linguaggio decisamente diverso da C, ma
storicamente la maggior parte dei compilatori C++ sono in grado di
compilare anche C. 
Dopotutto sotto il front-end, molte cose sono decisamente simili.
-- 
-riko

 compilare anche C. 
Non è proprio un superset del C?

 Non è proprio un superset del C?
No. Assolutamente no. 
Ci sono tanti piccoli punti in cui questo non vale. 
Ci sono costrutti che in C++ hanno una semantica diversa che in C *e* ci
sono cose valide in C e non in C++.
In C99 vs. C++ e' particolarmente evidente, ma anche in C89 vs C++ si
trovano alcuni giochini.
Si puo' dire che sia "per la maggior parte un superset". Definzione che
a me non dice nulla. Preferisco scrivere che "hanno un vasto
sottoinsieme comune".
In primo luogo in C ci sono parole chiave in meno rispetto a C++.
Ovviamente usarle al posto di un identificatore da un programma C valido
ma non un programma C++ valido. Questo e' discutibile nel senso che in
generale uno ci va a sbattere di rado e si risolve con semplici
rinomine. Allo stesso modo le vecchie dichiarazioni in stile K&R sono
solo deprecate in C (devo vedere C99) e non valide in C++.
La gestione degli enum e' leggermente diversa. 
In C puoi definire tipi come valore di ritorno delle funzioni:
struct pair { int success; int value; } 
    foo() {
        struct pair s = {0, 0};
        return s;
    }
Questo e' valido in C, ma non in C++. E' diversa anche la gestione dei
cast con void*. Sono tante piccole cose che io non mi ricordo tutte a
lista ma di solito mi vengono in mente quando qualcosa rompe.
Siccome mi capita relativamente spesso di fare librerie esterne per
linguaggi svariati dove il core e' in C++ e l'interfaccia viene piu'
facile farla in C (o si puo' farla solo in C), mi ci infaccio spesso.
Fortuna che fra extern "C" e compagnia ce ne si esce bellamente.
-- 
-riko



code blocks
-- 
Register here: 
http://www.000webhost.com/92681.html
*** 1500 MB of disk space
*** 100 GB of data transfer
*** PHP and MySQL support with no restrictions
*** cPanel control panel
*** Website Builder

 code blocks
code blocks non e' un compilatore.
-- 
-riko



Hai ragione, scusa, è un frullatore. Scusa, io credo che l'autore del 
post chiedesse un ambiente integrato Editor+Compilatore+Linker, ed 
infatti ha citato anche il TurboC, che è un IDE.


New ha scritto:

Secondo me se non sei tanto pratico potresti ripiegare sul gcc magari la
versione fornita in alcuni ambienti integrati, primi fa tutti
code::blocks che fornisce gcc configurato a dovere dal programma di
installazione.
http://www.codeblocks.org/
ciao

 infatti ha citato anche il TurboC, che è un IDE.
Lui ha chiesto un compilatore. Se lui non sa la differenza (banale) fra
compilatore e ambiente, non vedo perche' proseguire la confusione. 
Oltretutto continua ad esserci il problema di cosa tenere sotto
Code::Blocks. Per dire sotto Windows non ci vedo male proprio vc++. 
-- 
-riko

Enrico Franchi ha scritto:

spezzo una lancia a favore di cb e una a favore di vc...
code::blocks + mingw è più leggero e più semplice da installare, sotto
cb è più semplice utilizzare librerie come sdl o wxwidgets oppure ad
esempio le qt con la versione lgpl deve utilizzare forzatamente il gcc,
inoltre hai il vantaggio che il compilatore è quello che si usa anche su
linux e osx.
per quanto riguarda il vc++ (+platfrom sdk) puoi usare sia il c++
classico che il managed c++ e .net, inoltre (mi riferisco al c++
classico) il compilatore microsoft e sia più veloce a livello di
compilatore sia gli eseguibili sono leggermente più ottimizzati di
quelli che tira fuori il gcc..
Alcune librerie tipo mfc le puoi usare solo con il microsoft c++...
ognuno può tirare fuori mille e ragioni a favore del proprio compilatore
preferito, io ho cercato di essere conciso e sopra le parti

Claudio Carobolante ha scritto:

una scelta obbligatoria visto il nome ;)

 una scelta obbligatoria visto il nome ;)
Con un "Giovanni" in testa veniva anche meglio.