[C/C++] question sur la declaration de fonction

question sur la declaration de fonction [C/C++] - C++ - Programmation

Marsh Posté le 07-06-2002 à 22:40:49    

quand par exemple dans un main on met trois arguments mais sans type, par ex:
 

Code :
  1. main(i,o,O)


 
est-ce que la norme prevoie que le compilo mette le type par defaut a chacune des variables?
ca me semble louche :heink:


Message édité par deathsharp le 06-07-2002 à 22:43:40

---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 22:40:49   

Reply

Marsh Posté le 07-06-2002 à 23:02:09    

deathsharp a écrit a écrit :

ca me semble louche :heink:


me too.
 
http://groups.google.com/groups?hl [...] rodigy.com

Reply

Marsh Posté le 07-06-2002 à 23:12:53    

enfin je parle pas seulement pour le main en faut
j'ai fait un tour sur http://www.ioccc.org/
ya plein de truc comme ca avec les fonctions
visual c++ me jete ca a la tete et je trouve ca normal.
ya un gas qui me dis que c'est la norme des trucs du style :

Code :
  1. int truc( int, char, double );
  2. [...]
  3. int truc( _, i, o )
  4. {
  5. }


Message édité par deathsharp le 06-07-2002 à 23:13:26

---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:26:02    

je ne vois pas ce qu'il y a de choquant dans ton deuxième exemple, vu que le prototype est déclaré plus haut.
 
y'avait bien l'ancien (ou plutôt un des anciens) style(s) de déclaration :
 
int (param1, param2)
  short param1;
  int param2;
{
  ... code
}
 
une recherche google "c old style function declaration" donne qq pistes :
 
"In pre-standard C and C++, the default type of incomplete declarations used to be int.  
 
Thus, the following declarations:  
 
static x;
unsigned y; f(); main() {}  
 
Would be construed as:  
 
static int x;
unsigned int y; int f(); int main() {} "
 
http://www.itworld.com/nl/lnx_tip/01262001/

Reply

Marsh Posté le 07-06-2002 à 23:33:48    

a oui
mais c'est quand meme un vieu truc ca
 
enfin visual c++ me le jette quand meme a la tronche
il aime pas les vieux truc, moi non plus


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:35:05    

:lol:

Reply

Marsh Posté le 07-06-2002 à 23:35:52    

et ca marche avec des void* dans le proto?


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:36:41    

?

Reply

Marsh Posté le 07-06-2002 à 23:38:14    

Code :
  1. int truc( int, void*, double );
  2. [...]
  3. int truc( _, i, o )
  4. {
  5. }


 
comme ca :D


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:42:11    

le prototype c'est pour que le compilo connaîsse le type des variables, leur nom n'a de sens que dans la fonction. je ne vois pas pourquoi ça ne marcherait pas ...

Reply

Marsh Posté le 07-06-2002 à 23:42:11   

Reply

Marsh Posté le 07-06-2002 à 23:42:38    

va dire ca a microsoft :D


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:43:49    

ok, demain matin 9h :D

Reply

Marsh Posté le 07-06-2002 à 23:48:17    

c'est juste que j'etais tjrs habituer a remettre le type dans la declaration malger un proto.
pour ca que ca me fait bizarre.
faudrait que je me trouve la norme un jour pour voir certain truc dans ce style


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 07-06-2002 à 23:53:32    

haaa effectivement visual se chie dessus. je suis en train de me demander si c'est vraiment valide cette histoire de prototype.

Reply

Marsh Posté le 09-06-2002 à 20:32:18    

up :D


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 10-06-2002 à 10:55:15    

c'est vraiment tres interessant..

Reply

Marsh Posté le 10-06-2002 à 11:26:28    

bon ba si tout le monde sen fou... que ca coule :(


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 10-06-2002 à 13:17:36    

En c ça doit être valide, pas en C++ à cause de la surchage de fonction. Il faut répéter le proto pour que le compilo sache que tu tape le code de la fonction déjà déclarée et non d'un de ses éventuelles surcharges.


---------------
Le Tyran
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed