2010-07-04 6 views
0

Le compilateur se plaint à ce sujet:Quel est le problème avec cette fonction?

int randomSort(id obj1, id obj2, void *context) { // first line 
    return (arc4random()%3 - 1); 
} 

en première ligne:

_cmd non déclarés

et

'auto' non déclaré (première utilisation dans cette fonction)

Lorsque je n'utilise pas arc4random() ici, c'est-à-dire que je renvoie juste 1, tout va bien. J'ai d'autres fonctions c dans ce fichier qui utilisent arc4random() sans problèmes.

Une idée?

Répondre

3

Vous devez dire la signature de la fonction arc4random() avant de l'utiliser, à savoir

int arc4random(); // or whatever it looks like 

Ou include/importer un fichier d'en-tête approprié. Si votre fonction randomSort est vraiment la première ligne, alors évidemment il n'y a pas de ligne avant, ce qui rend impossible que vous ayez inclus/importé cela (pas pour les en-têtes précompilés ici).

+0

L'en-tête approprié est stdlib.h. http://developer.apple.com/iphone/library/documentation/system/conceptual/manpages_iphoneos/man3/arc4random.3.html – JeremyP

Questions connexes