C Ansi
Le C ANSI est généralement le dialecte le plus portable
est compatible avec le plus grand nombre de machines
et compilateurs. Le C++ en est une surcouche à
quelques différence près
.
Nouveautés depuis le C K&R
Apportées depuis le C++
Les commentaires d’une ligne //
.
Les fonctions a prototype.
Les enumerations.
Différences avec le C K&R
Le C Ansi consière que les arguments d’une fonction ont la même portée que les variables déclarées dans la fonction.
int square(int toto) {
int toto; // illégal depuis le C Ansi
}
Les chaines de caractère sont concaténées à la 6ème phase de traduction . On peut facilement construire des chaines de caractère multiligne.
int main()
{
"aa"
"bb"; // "aabb"
}
En K&R C on devait utiliser une anti barre oblique
int main()
{
"aa\
bb"; // "aabb"
}
On peut rapidement creer des tableaux de caractères à partir d’une chaine littérale, le caractère nul terminal pouvcant être élidé si besoin
int main()
{
char tab[4] = "toto"; // noter que le \0 terminal est simplement ignoré
}
C++ : Cette construction n’a pas été adoptée par le C++ qui le considère une tentative éronée d’initialiser un tableau de 4 caractères avec 5 valeurs.