Тип может иметь представления ловушек, это может быть UB, если представление знака является дополнением.
отрим следующую C-программу:
#include <stdio.h>
int main(){
int a =-1;
unsigned b=-1;
if(a==b)
printf("%d %d",a,b);
else
printf("Unequal");
return 0;
}
В соответствииprintf("%d %d",a,b);
, "%d"
используется для печати беззнакового типа. Это вызывает неопределенное поведение и почему?