|long type||Long type specifier|
simple-type-specifier := long
When used alone or with int, the long type specifier represents a long integer whose range is at least as large as a plain int. It can be combined with unsigned to denote an unsigned integer whose range is at least as large as a plain unsigned. A plain long is signed by default, but you can use the signed specifier to be explicit.
When combined with double, long represents an extended-precision, floating-point number, whose range and precision are at least as great as those of a plain double.
declaration, declarator, double, float, int, short, signed, type, unsigned, Chapter 2