Solaris 64-bit Developer's Guide

Specify Constant Types

A loss of data can occur in some constant expressions because of lack of precision. These types of problems are very hard to find. Be explicit about specifying the type(s) in your constant expressions. Add some combination of {u,U,l,L} to the end of each integer constant to specify its type. You might also use casts to specify the type of a constant expression. For example,

int i = 32;
long j = 1 << i;		/* j will get 0 because RHS is integer expression */

should be:

int i = 32;
long j = 1L << i;