Sur Solaris 9, avec des UltraSparc IIIi, la valeur de RAND_MAX est d'environ 30 000 (la valeur minimale définie par la norme ANSI), ce qui correspond à un short... alors que la fonction est censée retourner un int! C'est comme ça qu'un programme que j'avais fait sur IA32 plantait lamentablement sur Sparc à cause du nombre de collisions fréquentes. Une vraie saloperie cette fonction si on ne fait pas gaffe! When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal. 16/11/2006, 22h43 #11 Envoyé par InOCamlWeTrust Boaf, aucun rapport entre le type et RAND_MAX... Pourquoi tu parles de short? EOF vaut souvent -1, c'est pas pour ça que le type retourné par fgetc() est short ou signed char. Fonction rand c.r. Et puis les 30000, c'est bon pour un int dont la plage minimale garantie est -32767 à + 32767. int est le bon type, y'a pas à chercher autre chose. De toutes façons, char et short, c'est comme float, ça sert au stockage de masse, aux tableaux, mais les paramètres et les expressions constantes sont physiquement de type int, long, double ou pointeur.
J'ai corrigé ton titre pour être compatible avec le code, vous êtes à la demande. Original L'auteur Manoj Pandey | 2013-03-03