What Is Data Type Long in C?


Scott Campbell

What Is Data Type Long in C?

In the C programming language, the long data type is used to represent integers that have a larger range than the standard int data type. It is particularly useful when dealing with numbers that are too large or small to be represented using a regular int.

Declaration and Size:

To declare a variable of type long, you simply use the keyword long followed by the variable name. The size of a long variable is typically 4 bytes on most systems, although it can vary depending on the implementation.


The range of values that can be stored in a long variable depends on the system and compiler you are using. On most systems, a long can store integers ranging from -2,147,483,648 to 2,147,483,647.

Signed vs Unsigned:

A long variable can be declared as either signed or unsigned. By default, it is considered signed unless explicitly specified as unsigned.

When declared as signed, it can store both positive and negative values within its range. When declared as unsigned, it can only store non-negative values but has an extended upper limit.


  • To declare a signed long: long myVariable;
  • To declare an unsigned long: unsigned long myVariable;


The long data type is commonly used in scenarios where you need to work with extremely large numbers or when you need to ensure that the value of a variable can accommodate a wide range of values. It is often used when dealing with calculations involving time, dates, or any other situation where precision and range are crucial.


Let’s consider an example where we want to calculate the factorial of a large number:

#include <stdio.h>

unsigned long factorial(unsigned long n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);

int main() {
    unsigned long num = 20;
    unsigned long result = factorial(num);
    printf("Factorial of %lu is %lu\n", num, result);
    return 0;

In this example, we have declared the variable num as an unsigned long. This allows us to calculate the factorial of large numbers without running into overflow issues. The result is also stored in an unsigned long.


The long data type in C is a valuable tool for handling larger integer values that cannot be accommodated by the standard int. It provides a wider range and precision, making it suitable for various scenarios such as mathematical calculations, time operations, and more.

Incorporating the long data type into your C programs can help you overcome limitations and ensure accurate results when working with larger numbers. Remember to choose between signed and unsigned based on the specific requirements of your program.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy