#include <stdio.h>
#define PRINTER(Type_) , Type_: #Type_
#define print_type(val) puts(_Generic((val) \
PRINTER(char) \
PRINTER(unsigned char) \
PRINTER(short) \
PRINTER(unsigned short) \
PRINTER(int) \
PRINTER(unsigned int)))
int main() {
print_type('a');
print_type('a' * 'b');
char a = 'a';
char b = 'b';
print_type(a);
print_type(a * b);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFBSSU5URVIoVHlwZV8pICwgVHlwZV86ICNUeXBlXwojZGVmaW5lIHByaW50X3R5cGUodmFsKSBwdXRzKF9HZW5lcmljKCh2YWwpIFwKCVBSSU5URVIoY2hhcikgXAoJUFJJTlRFUih1bnNpZ25lZCBjaGFyKSBcCglQUklOVEVSKHNob3J0KSBcCglQUklOVEVSKHVuc2lnbmVkIHNob3J0KSBcCglQUklOVEVSKGludCkgXAoJUFJJTlRFUih1bnNpZ25lZCBpbnQpKSkKCmludCBtYWluKCkgewoJcHJpbnRfdHlwZSgnYScpOwoJcHJpbnRfdHlwZSgnYScgKiAnYicpOwoJCgljaGFyIGEgPSAnYSc7CgljaGFyIGIgPSAnYic7CglwcmludF90eXBlKGEpOwoJcHJpbnRfdHlwZShhICogYik7CgkKCXJldHVybiAwOwp9