Quelqu'un peut-il expliquer comment fonctionne moins d'op dans C?Comment fonctionne moins de l'opérateur (<) avec des types mixtes dans c
En particulier comment cela fonctionne quand les types d'opérandes de gauche et de droite sont différents? Le compare-t-il en fonction du type du premier ou du deuxième?
Le jargon pour cela est « les conversions arithmétiques habituelles », que vous pouvez trouver dans l'index * Le langage de programmation C * par Kernighan et Ritchie. La seule surprise est que parfois un opérande signé est promu à un type non signé parce que l'autre opérande est non signé, donc un grand '' '' '' '' 'non signé '' positif positif peut être considéré comme moins qu'un 'int' négatif. –
L'autre règle est que l'arithmétique (y compris les comparaisons) n'est jamais faite sur les types plus petits que 'int', donc si vous comparez un' char' avec un 'char', ils seront * tous les deux * promus' int' . – caf