C memory managmentBasics
Type Size
Type Size in c
In C, the "size" (in memory) of a type is not guaranteed to be the same on all systems. That's because the size of a type is dependent on the system's architecture. For example, on a 32-bit system, the size of an int is usually 4 bytes, while on a 64-bit system, the size of an int is usually 8 bytes - of course, you never know until you run sizeof with the compiler you plan on using.
However, some types are always guaranteed to be the same. Here’s a list of the basic C data types along with their typical sizes in bytes. Note that sizes can vary based on the platform (e.g., 32-bit vs. 64-bit systems):
Basic C Types and Sizes:
-
char
- Size: 1 byte
- Represents: Single character.
- Notes: Always 1 byte, but can be signed or unsigned.
-
float
- Size: 4 bytes
- Represents: Single-precision floating-point number.
-
double
- Size: 8 bytes
- Represents: Double-precision floating-point number.
- The actual sizes of these types can be determined using the sizeof operator in C for a specific platform, which we'll learn about next.
#include <stdio.h>
int main() {
printf("char: %zu bytes\n", sizeof(char));
printf("float: %zu bytes\n", sizeof(float));
printf("double: %zu bytes\n", sizeof(double));
char c = 'A';
float f = 3.14f;
double d = 2.71828;
printf("Variable char: %zu bytes\n", sizeof(c));
printf("Variable float: %zu bytes\n", sizeof(f));
printf("Variable double: %zu bytes\n", sizeof(d));
return 0;
}