C Programming

Why char is of 1 Byte in C Language

As a C programmer, you have probably wondered why the size of char is only 1 byte in C language. It might seem like a small detail, but finding the reason behind it can help you in writing more effective programs.

In this article, we will focus on the reason behind the 1-byte char in C language.

What is char in C Language

To store characters and letters, C uses the char type. The character (char) values in C are kept in 1 byte of memory and have a value range of 0 to 255 or -128 to 127. The computer must map each integer with a matching character using a numerical code in order to represent characters. The most commonly used numerical code is ASCII, which stands for American Standard Code for Information Interchange.

Why char is of 1 Byte in C Language

There are multiple reasons why the char data type is 1 byte:

1: The first reason is that the char size is predefined in C standard library. No matter, which compiler you use, it will store and manipulate characters via 1-byte values. The most likely explanation is that a char’s (binary) equivalent in the standard character set can fit into a single byte. At the time of initial development of C, the most used standards were ASCII as well as EBCDIC, which needed seven and eight bits encoding, respectively. Therefore, 1 byte was enough to symbolize the entire character set.

2: An ASCII letter is typically represented by a char that only contains 256 characters. Therefore, you only need to indicate the range of numbers from 0 to 255, or 8 bits = 1 byte.

3: Because C was designed to be used on computers with 16 bits of address space, using greater than one byte for strings was considered wasteful.

4: Having char of 1 byte in C language makes it easy for the programmers to port their code to different machines.

5: There are several programming languages, such as Java and C++ that use 1-byte characters, which makes it easier for you to interoperate between different languages.

How to Find the Size of the char Data Type

The sizeof operator can be used to determine a type or variable’s precise size on a specific platform. The expression sizeof(type) returns the object’s or type’s storage size in bytes.

#include<stdio.h>
int main() {
    char ch;
    printf("Size of char: %d byte\n", sizeof(ch));
    return 0;
}

In the above code, we use the sizeof function to find the size of char in C programming language, which is 1 byte confirmed by the compiler shown in the output below.

Output

Advantages and Disadvantages of 1 Byte char in C Language

The following are the advantages of having 1 byte char in C language.

  • It makes the C language more efficient.
  • Makes the C language more consistent with other languages that also use bytes for character data types.
  • Characters can now be subjected to more complicated operations.

The only disadvantage you will get with a char of 1 byte is that you will face difficulty in working with large-size characters because some languages may require more than 256 characters.

Conclusion

In the above guidelines, we have seen that the char data type in C language is 1 byte, and the reason for this is to maintain consistency across all platforms. By fixing the char size to 1 byte, the same operations can be carried out on different machines with consistent accuracy no matter, which hardware or compiler you are using.

About the author

Komal Batool Batool

I am passionate to research technologies and new ideas and that has brought me here to write for the LinuxHint. My major focus is to write on programming languages and computer science related topics.