Categorie
Winzipedia Uso dell'wiki |
CycloneEsercizioInformatica3.CycloneEsercizio VersioniMostra le modifiche minori - Mostra le modifiche 01/06/2006 ore 11:39 CEST
di - Aggiunta di autore, collaboratori e sommario
Modificate le linee 1-2: da:
! a:
! Esercizio si riscrittura di un programma C in Cyclone '''Autore:''' [[Profiles.Vincenzo|Vincenzo Manzoni]]\\ '''Hanno contribuito:''' [[Profiles.Andrea|Andrea Rota]] ->'''Sommario''' ->[-Esempio di riscrittura di un semplice programma da C a Cyclone.-] 07/05/2006 ore 15:30 CEST
di - /* Creazione della pagina */
Aggiunte le linee 1-57:
!! Esercio si riscrittura di un programma C in Cyclone Dato il seguente codice, riscriverlo in [[http://cyclone.thelanguage.org/ | Cyclone]]. #include <stdio.h> void foo(char *s) { printf(s); } int main(int argc, char **argv) { argv++; for(argc--; argc >= 0; argc--, argv++) foo( *argv ); } 1. Innanzitutto il main deve ritornare un intero, e quindi va aggiunta l'istruzione // ... foo( *argv ); return 0; } int main(int argc, char *@fat *@fat argv) { //... void foo(char *@fat @zeroterm s) { //... } Ecco quindi il programma sorgente compilabile con Cyclone (testato): #include <stdio.h> void foo(char *@fat @zeroterm s) { printf(s); } int main(int argc, char *@fat *@fat argv) { argv++; for(argc--; argc >= 0; argc--, argv++) { foo( *argv ); } return 0; } Nota: dalla documentazione di Cyclone, i puntatori di tipo char sono @@*@zeroterminated@@ di default, mentre tutti gli altri tipi di puntatori sono di default @@*@nozeroterminated@@, quindi la soluzione senza @@*@zeroterminated@@ in @@foo()@@ funziona. |