Typecasting from int to long int
<p>Recently I searched the difference between <code>int</code>, <code>long int</code>, <code>long</code>, ... and so on. And I got the answer from <a href="https://stackoverflow.com/questions/18971732/what-is-the-difference-between-long-long-long-long-int-and-long-long-i">here</a>. And I found that <code>long</code> and <code>long int</code> are identical. So the statements
<code>c = a *long(b);</code></p>
<p>and</p>
<p><code>c = a * long int (b)</code></p>
<p>should be same in the program</p>
<pre><code>int main()
{
    int a = 10, b = 20;
    long int c;
    
    c = a *long(b);
    cout &lt;&lt; c;
    
    return 0;   
}
</code></pre>
<p>But the second statement is showing an error</p>
<p><b>[Error] expected primary-expression before 'long' </b></p>
<p>So I just want to know, if <code>long</code> and <code>long int</code> are identical, so why there is error in the above two statements ?</p>