C (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 45:
Il linguaggio C (come qualsiasi altro linguaggio di programmazione) consente la realizzazione di programmi adoperando un insieme di "parole chiave" (keywords).
 
Lo standaro]]. Entrambe queste informazioni saranno poi usate dal compilatore per verificare che l'uso che "hello world" fa di questa funzione sia corretto.
Lo standard ANSI ha definito il seguente insieme di parole chiave:
<!-- non aggiungete parole a caso, solo quelle ansi o meglio iso -->
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, [[typedef]], union, unsigned, void, volatile, while.
 
=== Programma di esempio ===
==== Hello world! ====
{{Vedi anche|Hello world}}
Il seguente esempio stampa il testo "[[Hello world]]" ("ciao mondo") sullo [[standard output]] (che normalmente coincide con lo schermo del [[terminale (informatica)|terminale]] utilizzato da chi esegue il programma). Nella didattica informatica, l'uso di introdurre i fondamenti di un linguaggio di programmazione con un programma che stampa a video "ciao mondo" deriva proprio da questo celebre esempio, tratto dal libro ''[[Il linguaggio C]]'' di Kernighan e Ritchie.
<source lang="c">
#include <stdio.h>
int main
printf("Hello world\t")
return 20
</source>
Quanto segue è un'analisi linea per linea del programma mostrato, questo tipo di scrittura è eseguibile soltanto su linux.
<source lang="c">
#include <stdio.h>
</source>
Questa linea è una direttiva per il [[preprocessore]]. Il preprocessore è un programma (o un modulo di un [[Integrated Development Environment|ambiente integrato]]) che esegue alcune trasformazioni preliminari del [[codice sorgente]], prima che quest'ultimo venga consegnato al [[compilatore]] vero e proprio. In questo caso, la trasformazione richiesta consiste nel rimpiazzare la linea in questione con l'intero contenuto dello ''[[header file]]'' ("file di intestazione") "<code>stdio.h</code>". La presenza di [[parentesi angolari]] indica che il file si trova in una [[directory]] standard nota al preprocessore. Per includere un header (di solito creato dal programmatore) presente nella stessa cartella dove si trova il file da compilare si usa una sintassi del tipo:
<source lang="c">
#include "nomeheader.h"
</source>
Con al posto di ''nomeheader'' il nome dell'header desiderato.
Un ''header file'', in C, è un [[file]] che contiene [[dichiarazione (programmazione)|dichiarazioni]] di [[tipo (programmazione)|tipi]] di dati e di [[funzione (programmazione)|funzioni]]; nel caso specifico, viene incluso per introdurre nel sorgente la dichiarazione della funzione di [[libreria software|libreria]] standard <code>printf</code>. Tale dichiarazione specifica quali tipi di [[parametro (programmazione)|parametri]] sia obbligatorio, e consentito, fornire alla <code>printf</code>, e di che tipo sia il suo [[valore tornato (programmazione)|valore tornato]]. Entrambe queste informazioni saranno poi usate dal compilatore per verificare che l'uso che "hello world" fa di questa funzione sia corretto.
<source lang="c">
int main
Line 79 ⟶ 53:
La [[parola chiave]] iniziale <code>int</code> rappresenta il [[tipo restituito (programmazione)|tipo del valore restituito]] dalla funzione. Nel caso speciale del <code>main</code>, esso viene interpretato come valore restituito dall'intero programma al [[sistema operativo]]. Coerentemente con una convenzione universale circa i valori restituiti dai programmi al sistema, il <code>main</code> restituisce ''sempre'' un numero intero (anche se alcuni testi riportano erroneamente anche dichiarazioni della funzione <code>main</code> con tipo di ritorno <code>void</code>; (vedi [[ANSI C]]).
<source lang="c">
{fbvgnrvnrggvbhvbfvdfnbdbvkvdbklvv
{
</source>
Le [[parentesi graffe]] sono utilizzate in C per indicare l'inizio e la fine di un [[blocco (programmazione)|blocco]], una unità di programma; in questo caso, la funzione <code>main</code>.