title: Doubts about Macros in C
body: <pre><code>#define MHZ *1000000l
  #define MSEC /1000l
  </code></pre>
  
  <p>This is the function defination</p>
  
  <pre><code>unsigned int SysTick_Config(unsigned int ticks)
  {
    if (ticks &gt; SysTick_LOAD_RELOAD_Msk) 
    return (1);   // Reload value impossible 
  
    STRELOAD = (ticks &amp; SysTick_LOAD_RELOAD_Msk) - 1; // set reload register 
  
    return (0);  // Function successful 
  }
  </code></pre>
  
  <p>The Function is called as mentioned below  </p>
  
  <pre><code> SysTick_Config(96MHZ * 2.5MSEC);
  </code></pre>
  
  <p>My doubt is about the macro used.Does writing 96MHZ mean it gets replaced by (96 * 1000000l) ? Does 96 get multiplied by 1000000 ? 
   Also, what does /1000l in #define MSEC /1000l mean? why is the / used.</p>
  
  <p>I am using IAR embedded workbench</p>