Вы не можете изменить подпись по умолчанию int
, потому что это по определению тип со знаком (§6.2.5 / 4).Рассмотрим функцию main
, которая должна возвращать тип int
(§5.1.2.2.1 / 1), если вы каким-либо образом измените подпись по умолчанию, то main
вернет unsigned int
, и это приведет к неопределенному поведению, отрисовываявсе ваше приложение относительно бесполезно.
Вы не можете создать макрос, потому что если int
расширяется до unsigned int
, то, если вы где-то объявили unsigned int
, вы получите unsigned unsigned int
,который не является допустимым типом.