title: Provide reason for below mentioned difference in behavior of typdef & #define
body: <p>I have gone through already existing information available on</p>
  
  <p><a href="https://stackoverflow.com/questions/12202220/difference-between-typedef-and-define">difference between typedef and define</a> &amp; 
  <a href="https://stackoverflow.com/questions/3316474/typedef-define?rq=1">typedef,#define</a></p>
  
  <p>All replies are really informative.
  I just came across one more example, can anyone please provide the reason for this behavior .</p>
  
  <p><strong>For declaring unsigned int variable</strong> this will work:</p>
  
  <pre><code>#define INTEGER int
  unsigned INTEGER i = 10;
  </code></pre>
  
  <p>But, it won't work in case of typedef,</p>
  
  <p><em>e.g.</em></p>
  
  <pre><code>typedef int INTEGER;
  unsigned INTEGER i = 10;
  </code></pre>
  
  <p>it will throw error:  <em>‘i’ undeclared (first use in this function)</em></p>
  
  <p>Thanks in Advance!</p>