CLOSE

In C and C++, size qualifiers are keywords used to adjust the memory size and value range of fundamental data types—most commonly integers and floating-point types. They allow developers to fine-tune how much memory is used and what numerical range a variable can represent.

The two most common size qualifiers are short and long. These keywords, when used with certain types, define how much memory a variable will take up and the range of values it can hold.

Why Use Size Qualifiers?

  • Optimize memory usage
  • Represent larger or smaller numbers precisely
  • Ensure platform compatibility for system-level programming

Common Size Qualifiers

QualifierDescription
shortReduces size of an integer
longIncreases size of an integer or float
long longFurther increases integer size

1. short Qualifier

The short keyword is used to declare smaller-sized integers.

The short qualifier reduces the size of an integer. Typically, a short int occupies 2 bytes of memory (16 bits), although this can vary depending on the system or compiler. This limits the range of values it can represent compared to a regular int. For example:

Memory:

  • Typically 2 bytes (16 bits),  but platform-dependent

Value Ranges:

  • Signed short: Range from -32,768 to 32,767
  • Unsigned short: Range from 0 to 65,535

The short qualifier is useful when memory efficiency is crucial, and you know that the value being stored will be small.

short int x = 32000;         // signed short
unsigned short int y = 65000; // unsigned short

Here, x is a small integer variable that uses less memory than a regular int.

When to Use:

  • Memory-constrained systems (embedded, IoT)
  • Storing small numerical values

2. long Qualifier

The long keyword extends the size of an integer or floating-point type.

The long qualifier increases the size of an integer. Typically, a long int takes up 4 bytes (32 bits), and on many systems, a long long int can take 8 bytes (64 bits). This allows the variable to hold much larger numbers.

Memory:

  • long int: Typically 4 bytes

  • long long int: Typically 8 bytes

Value Ranges:

  • long int: −2,147,483,648 to 2,147,483,647

  • unsigned long: 0 to 4,294,967,295

  • long long int: Up to ±9 quintillion

For even larger numbers, long long provides even greater capacity, often allowing ranges up to 9,223,372,036,854,775,807 (for signed values).

Example:

long int a = 1000000;
long long int b = 100000000000LL;
unsigned long long c = 18446744073709551615ULL;

Note: Always use suffixes like LL or ULL for large literals to match the type.

3. long with Floating Point: long double

The long qualifier also applies to floating-point numbers:

  • long double offers greater precision and wider range than double

  • Size varies by system, often 80 or 128 bits

Example:

long double pi = 3.141592653589793238L;

Size Qualifiers in Different Contexts

  • Integer Types: Size qualifiers are most commonly applied to integer types to specify whether the number is short or long. For example, short int and long int.
  • Default Sizes: By default, int is usually 4 bytes in modern systems. If no size qualifier is used, the system determines the default size based on the platform.
  • Floating Point Types: The long qualifier can also be used with floating-point types to define precision. For example, long double has more precision and a larger range than a regular double.

Summary Table

TypeTypical SizeUse Case
short int2 bytesSmall integers
int4 bytesGeneral-purpose integers
long int4 bytesLarger integers
long long int8 bytesVery large integers
long double10–16 bytesHigh-precision floating points