Why do I give a negative value of-10 after defining unsigned int a, and the printf ("%d ") function still displays-10?
You made a mistake in estimating the format output of the printf function. You define it as unsigned shaping, and it must be output in %u format symbol, which must be a positive number. Variables are stored in memory in the form of two's complement, so whether you define them as symbolic variables or not, their values stored in memory are the same, but they are variable during output control.