Date created: Monday, August 1, 2016 8:51:45 PM. Last modified: Friday, January 3, 2020 3:34:23 PM
Sizeof Reference
C variable sizes:
bensley@ubuntu-laptop:~/C$ uname -a
Linux ubuntu-laptop 4.11.0-041100-generic #201705041534 SMP Thu May 4 19:36:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
bensley@ubuntu-laptop:~/C$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l
bensley@ubuntu-laptop:~/C$ cat sizeof.c
#include <stdio.h>
#include <string.h>
#include <stdbool.h> // bool
#include <sys/types.h> // u_char
#include <stdint.h> // uintN_t
#include <unistd.h> // getpagesize()
#include <sys/user.h> // PAGE_SIZE
int main()
{
printf("bool : %lu byte(s)\n", sizeof(bool));
printf("char : %lu byte(s)\n", sizeof(char));
printf("u_char : %lu byte(s)\n", sizeof(u_char));
printf("uint8_t : %lu byte\n", sizeof(uint8_t));
printf("uint8_t* : %lu byte\n", sizeof(uint8_t*));
printf("short : %lu bytes\n", sizeof(short));
printf("int : %lu bytes\n", sizeof(int));
printf("float : %lu bytes\n", sizeof(float));
printf("uint32_t : %lu bytes\n", sizeof(uint32_t));
printf("uint32_t* : %lu bytes\n", sizeof(uint32_t*));
printf("void* : %lu bytes\n", sizeof(void*));
printf("long : %lu bytes\n", sizeof(long));
printf("char* : %lu bytes\n", sizeof(char*));
printf("size_t : %lu bytes\n", sizeof(size_t));
printf("uint64_t : %lu bytes\n", sizeof(uint64_t));
printf("double : %lu bytes\n", sizeof(double));
printf("long long : %lu bytes\n", sizeof(long long));
printf("long double : %lu bytes\n", sizeof(long double));
printf("PAGE_SIZE : %lu bytes\n", PAGE_SIZE);
printf("MAX_ORDER : %d\n", 11);
printf("PAGE_SIZE<<11: %lu bytes\n", PAGE_SIZE<<11);
printf("getpagesize : %d bytes\n", getpagesize());
return 0;
}
bensley@ubuntu-laptop:~/C$ gcc -o sizeof sizeof.c
bensley@ubuntu-laptop:~/C$ ./sizeof
bool : 1 byte(s)
char : 1 byte(s)
u_char : 1 byte(s)
uint8_t : 1 byte
uint8_t* : 8 byte
short : 2 bytes
int : 4 bytes
float : 4 bytes
uint32_t : 4 bytes
uint32_t* : 8 bytes
void* : 8 bytes
long : 8 bytes
char* : 8 bytes
size_t : 8 bytes
uint64_t : 8 bytes
double : 8 bytes
long long : 8 bytes
long double : 16 bytes
PAGE_SIZE : 4096 bytes
MAX_ORDER : 11
PAGE_SIZE<<11: 8388608 bytes
getpagesize : 4096 bytes
Previous page: Netmap Notes
Next page: Stack, Heap and Stack Frame