22-09-2017, 01:46 PM
Correction in original post: replace (uint32_t)(5U*5U) with (uint32_t)5U * 5U. The essential type of the original example is not actually based on the UTLR in the first place. The standard type of this new expression will still vary from unsigned int to unsigned long but the essential type should now vary between unsigned long and unsigned char depending on the definition of uint32_t as the example originally intended because the top level binary operator uses the UTLR.
<t></t>