Quelle est la réponse à "nil% 2" dans l'objectif-c? Je pense que la réponse est 0 mais je ne suis pas sûr.Quel est le résultat de "nil% 2" dans objective-c?
Merci.
Quelle est la réponse à "nil% 2" dans l'objectif-c? Je pense que la réponse est 0 mais je ne suis pas sûr.Quel est le résultat de "nil% 2" dans objective-c?
Merci.
Il est impossible pour une opération mod-2 pour revenir 2 seulement 0 ou 1. Je suppose, dans ce cas, qu'il serait 0.
En fait, la réponse est une erreur du compilateur. nil
est un pointeur (défini comme (void *)0
) et les seules opérations arithmétiques définies pour les pointeurs sont l'addition et la soustraction. Mais si vous voulez savoir ce que 0% 2 est la réponse de Noé est juste.
Pour être juste, nul n'est '' (void *) 0' c'est '(id) 0' – jer
Non. Regardez '/ usr/include/objc/objc.h'. Là, 'nil' est défini comme' __DARWIN_NULL' qui à son tour est défini dans '/ usr/include/sys/_types.h' comme' ((void *) 0) 'pour le code C. Aussi l'erreur du compilateur dit que vous ne pouvez pas utiliser '%' sur 'void *'. – Sven
Il est conceptuellement '(id) 0' car tout type de pointeur n'est pas un type de récepteur valide. Par exemple, '[(void *) 0x1234 description]' affichera un avertissement selon lequel 'void *' est un type de récepteur invalide, mais '[(id) 0x1234 description]' ne montre pas ce même avertissement. – dreamlax
L'avez-vous essayé? –