title: Why is STM32 header file using unsigned int instead of unsigned long?
body: <p>Below is from a header file of a STM32 microcontroller board:</p>
  <pre><code>#define RCC_APB2RSTR_USART1RST_Pos               (14U)                         
  #define RCC_APB2RSTR_USART1RST_Msk               (0x1UL &lt;&lt; RCC_APB2RSTR_USART1RST_Pos) /*!&lt; 0x00004000 */
  </code></pre>
  <p>At first line when I hover on 4U it shows it as &quot;unsigned int&quot;; the second line used UL which is &quot;unsigned long&quot;.</p>
  <p>But according to <a href="https://www.keil.com/support/man/docs/armcc/armcc_chr1359125009502.htm" rel="nofollow noreferrer">this page</a> both &quot;unsigned int&quot; and &quot;unsigned  long&quot; are same (both being 32-bit and unsigned integers ):</p>
  <p><a href="https://i.stack.imgur.com/ukdBZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ukdBZ.png" alt="enter image description here" /></a></p>
  <p>What could be the reason they don't follow the same types here? Why not using 14UL but 14U even though they are same?</p>