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

Hola,
secondo i manuali* i commenti del C sono solo del tipo
/* commento */
ma il compilatore gcc 3.3 accetta pure
// commento
è normale? è standard anche quello?
meglio usare solo /* */ ?
grazie, ciao,
salvo
-----
* B. W. Kernighan, D. M. Ritchie, Il linguaggio C, Pearson, II edizione
-- 
#!/usr/bin/perl
print "NeXT tip => /me == (~§alvomi©~ @ddress) - (Alfa kai Omega) \n";

 meno che non sia specificata la flag -ansi oppure -traditional
grazie, questo non mi era chiaro.
ciao,
-- 
salvo

 meglio usare solo /* */ ?
Questione di gusti, solitamente se il commento si estende su piu` righe
si usa /**/ (al posto di ripetere //). Se non ci sono problemi di
portabilita` con compilatori vecchi e` solo una questione di preferenze
personali.
Luca
-- 
Home: 
http://kronoz.cjb.net
La vispa candela bruciava l'erbetta
creando un'essenza alquanto sospetta;
sembrava l'odore di una sacrestia
ma presto mi accorsi che era maria.

 /* commento */
infatti... se ti interessa su it.comp.lang.c++ c'era stato una 'sfida'
sulla scrittura di un breve programma valido C e C++ che se compilato
come programma C desse un valore differente che se compilato come
programma C++.
E la soluzione si basava proprio sui commenti (o meglio, una delle
soluzioni). Dacci un occhio, non e` troppo vecchio.
-- 
RiK0
Non credo negli schemi non vincenti.

 soluzioni). Dacci un occhio, non e` troppo vecchio.
dammi più elementi, non lo trovo.
ciao, grazie
/* salvo */


non farti ingannare dal subject... si sviluppa poi dentro il
sottothread.
Effettivamente lo trovi se sai dove e`, se no passa inosservato.


 Effettivamente lo trovi se sai dove e`, se no passa inosservato.
grazie, a causa di problemi di connessione ti rispondo solo ora.
lo cerco, ok!
ciao,
salvo

 Effettivamente lo trovi se sai dove e`, se no passa inosservato.
Hi riko, Google "non e` mio amico"?
non lo trovo più...
Com'era il subject, che cerco con quello?
grazie
salvo

 Com'era il subject, che cerco con quello?
compiti delle vacanze, o qualcosa di simile...


 compiti delle vacanze, o qualcosa di simile...
trovato!
Thread simpatico ed istruttivo :)
Tanto per dire, tra l'altro, che C e C++ non sono poi cosě simili quando
crediamo...
Allora Max propone:
---
 ~$ cat temp.c
 #include <stdio.h>
 int main()
 {
        printf( "%d\n",24//**/1+18
        );
 }
 ~$ gcc -ansi -x c temp.c
 ~$ ./a.out
 42
 ~$ gcc -ansi -x c++ temp.c
 ./a.out
 24
---
Verissimo. Il segreto sta in 24//**/ che in un caso vuol dire "24 diviso
e commento" e nell'altro "24 commento" (geniale).
Provando su Mac OS X come sopra ok, ma se provo semplicemente
gcc temp.c -o temp.o ottengo 24.
Cos'č, GCC lo vede normalmente come fosse C++ e non C?
ciao,
salvo

 Cos'è, GCC lo vede normalmente come fosse C++ e non C?
devi specificare di essere assolutamente conforme.
con -std=c89 gli dici di compilare come fosse c89, e con -pedantic di
essere appunto pedante sull'ansi C e di 'non lasciare passare nulla'
Altrimenti lui usa alcune estensioni del gcc (peraltro molti compilatori
le usano) per cui prende anche // (cosi` come di default accetta un
array dichiarato con una dimensione non nota a compile time).
Nota che afaik // e` standard in C99.
Alla fine spesso i compilatori di default sono piu` tolleranti dell'ANSI
C. Forse e` anche cosa buona... non saprei.


 C. Forse e` anche cosa buona... non saprei.
forse è cosa buona. :)
ciao,
salvo

 però la nuova edizione del libro di Kernighan e Ritchie non lo riporta
Il K&R (seconda ed.) e` stato pubblicato prima dell'approvazione del C90
e non mi risulta sia stato aggiornato al C99.
Luca
-- 
Home: 
http://kronoz.cjb.net
42

 e non mi risulta sia stato aggiornato al C99.
Non risulta nemmeno a me. La copia in mio possesso (acquistata di
recente) per lo meno no.


 recente) per lo meno no.
come avevo scritto in un altra risposta che - almeno qui da me - non
sembra essere pervenuta al NG, l'edizione inglese è del 1988 se ben
ricordo, quella italiana febbraio 2004 per i tipi di Pearson.
L'editore annota per l'edizione italiana: «[l'edizione ha scelto di]
integrare direttamente, nel testo o in nota, l'errata corrige presente
sul sito <
http://cm.bell-labs.com/cm/cs/cbook/
, costantemente aggiornato
e integrato dalle continue e precise revisioni da parte degli stessi
Autori...»
Non so dire, però, quanto di C99 sia stato incluso effettivamente.
ciao,
salvo

 Non so dire, però, quanto di C99 sia stato incluso effettivamente.
Gli errata si riferiscono a refusi oppure a cambiamenti fatti durante il
processo di ratifica dello standard da parte dell'ANSI (98), avvenuto
dopo la pubblicazione del libro.
In rete si trovano dei draft sul C99 (il documento finale si paga, se
non ricordo male ho pagato una decina di dollari per la versione PDF) se
si interessato. Nota che non e` una manuale, va bene come reference.
Luca
-- 
Home: 
http://kronoz.cjb.net
Se non sei parte della soluzione, allora sei parte del problema.