2010-08-02 1 views

Répondre

3

C'est l'ancien format K & R. Il ne déclare pas l'argument x, définissant plutôt son type. Par défaut, les choses étaient int sauf indication contraire. À l'époque où C était un langage beaucoup plus simple, pas si éloigné de mon BCPL bien-aimé, c'était la façon dont vous donniez leurs types de fonctions. Aucun de ces trucs prototypes que vous, les jeunes crétins, tenez pour acquis.

Oh ouais, et descendre ma pelouse :-)

+0

Cela signifie que j'ai un livre très très vieux, destiné aux oldies;) – zengr

+0

Oui, vous faites vraiment. Même K & R lui-même (la bible blanche) a été mis à jour pour utiliser des prototypes fonctionnels appropriés en 1990. Et cela ne me dérange pas d'être appelé un oldie. La vieillesse et la trahison battent beaucoup la jeunesse et la compétence :-) – paxdiablo

+0

Je suis d'accord Sire :) – zengr

1

C'est la façon originale de déclarer les types de paramètres de fonction en C. Tout compilateur fonctionne correctement C est nécessaire pour l'accepter. Cependant, il n'est pas autorisé en C++, donc tout compilateur C++ fonctionnant correctement doit le rejeter (bien que dans les deux cas, notez qu'une combinaison spécifique de drapeaux de compilateur peut être nécessaire pour obtenir une fonction correcte). Il était une fois, les compilateurs C seulement ont accepté ce style, et rejetteraient le code comme: float absolute_value(float x) {}. Cela a été ajouté (avec les prototypes de fonctions) pendant que C était en cours de normalisation.

+0

Ce n'est pas autorisé dans C99 non plus. – dan04

+0

@ dan04: Pas si. C'est, selon le §6.11.7 "une caractéristique obsolète", mais il est toujours permis (par §6.9.1/7): "Le déclarant dans une définition de fonction spécifie le nom de la fonction en cours de définition et les identifiants de ses paramètres Si le déclarateur inclut une liste de types de paramètres, la liste spécifie également les types de tous les paramètres; [...] " –