Maison  >  Article  >  développement back-end  >  Pourquoi X % 0 est-il invalide en C ?

Pourquoi X % 0 est-il invalide en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-06 18:55:03332parcourir

Why Is X % 0 Invalid in C  ?

Impossible de Mod Zero ?

Pourquoi l'expression X % 0 est-elle invalide dans les langages de programmation comme C ? Intuitivement, on pourrait s'attendre à ce qu'il renvoie le reste de X, similaire à la division.

Selon la norme C (2003), le comportement des opérateurs / et % n'est pas défini lorsque le deuxième opérande (le diviseur) est zéro :

[...] If the second operand of / or % is zero the behavior is undefined [...]

Par conséquent, les expressions suivantes invoquent un comportement non défini (UB) :

X / 0; // UB
X % 0; // UB

Ce comportement non défini signifie que le résultat exact de ces expressions est imprévisible et peut varier en fonction de le compilateur ou l'implémentation spécifique.

De plus, il est important de noter que le reste de -5 % 2 n'est pas simplement le négatif de 5 % 2. Le signe du reste lorsque les deux opérandes sont non positifs est l'implémentation -défini, non standardisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn