type printf literal description
--------------------------------------------------
char %s %c %d 문자형(사실 정수형)
unsigned char %s %c %u 부호없는 문자형(사실 정수형)
--------------------------------------------------
short %d 2바이트(16비트)
int %d 4바이트(32비트)
long %ld l, L 8바이트(64비트)
long long %lld ll, LL 8바이트(64비트)
--------------------------------------------------
unsigned short %u u, U 2바이트(16비트)
unsigned int %u u, U 4바이트(32비트)
unsigned long %lu ul, UL 8바이트(64비트)
unsigned long long %llu ull, ULL 8바이트(64비트)
#include <stdio.h>
int main(int argc, char *argv[]) {
// char는 문자(character)를 뜻하지만 기본적으로 정수형이다.
char num1 = 80; // 1바이트 부호 있는 정수형
unsigned char num6 = 200; // 1바이트 부호 없는 정수형
printf("%d %u\n", num1, num6);
// 일반 정수형
short num2 = 30000; // 2바이트 부호 있는 정수형
int num3 = -1234567890; // 4바이트 부호 있는 정수형
long num4 = 1234567890; // 4바이트 부호 있는 정수형
long long num5 = -1234567890123456789; // 8바이트 부호 있는 정수형
printf("%d %d %ld %lld\n", num2, num3, num4, num5);
// 부호없는 일반 정수형 => 양수만 담을 수 있다.
unsigned short num7 = 60000; // 2바이트 부호 없는 정수형
unsigned int num8 = 4123456789; // 4바이트 부호 없는 정수형
unsigned long num9 = 4123456789; // 4바이트 부호 없는 정수형
unsigned long long num10 = 1234567890123456789; // 8바이트 부호 없는 정수형
printf("%u %u %lu %llu\n", num7, num8, num9, num10);
return 0;
}
// 80 200
// 30000 -1234567890 1234567890 -1234567890123456789
// 60000 4123456789 4123456789 1234567890123456789
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("char: %zu, int: %zu, long: %zu, long long: %zu",
sizeof(char),
sizeof(int),
sizeof(long),
sizeof(long long)
);
return 0;
}
// char: 1, int: 4, long: 8, long long: 8