C 语言提供了一下四种说明符,四个都属于关键字;
这些说明符一般就是用来修饰 int 类型的,所以在使用时可以省略 int
short 和 long 可以提供不同长度的整型数,也就是可以概念整型数的取值范围
总结一下,在 64 位编译器下
int main(int argc, const char * argv[]) {
/*
short 2 个字节
int 4 个字节
long 8 个字节
long long 8个字节
*/
int num = 123456789999;
printf("使用int 来输出;%i\n",num); // -1097261585
// C语言中不看怎么存,只看怎么取
long num1 = 123456789999;
printf("使用int 来输出;%li\n",num1); // 123456789999 使用%li 或者 %ld 输出
long long num2 = 123456789999;
printf("使用int 来输出;%li\n",num2);
// long long 和 long 的区别
// 在 64 位的编译器下没有区别,在 32 位的编译器下 long long占 8 个字节,long 占 4个字节
return 0;
}
/*
signed
unsigned
*/
// 如果给变量前面加上 signed 修饰符的话,代表当前变量的取值范围是正数,负数,零
// 就代表把二进制的最高位作为符号位,默认是有 signed 的修饰的
signed int num = 9;
// 如果给变量前面加上了 unsigned 修饰符的话,代表当前变量的取值范围只能是正数和零
// 如果想打印无符号的变量要使用%u 进行输出
// 代表不把二进制的最高位w作为符号位,
unsigned int num1 = -11; // 4294967285,可以正常输出零,正数
printf("num1 前面加了 unsigned 进行修饰:%u\n",num1);
return 0;
// 混合使用
// 相同类型不能在一起使用
long unsigned int num = 111111111111111199;
printf("混合使用输出:%lu\n",num);
// 输出 long 使用%l
// 输出 short 使用%h
// 输出 long long 使用%ll
// 输出 signed 默认就是 signed,使用%i
// 输出 unsigned 使用%u 输出
C语言-类型说明符 long,short,unsigned,signed
原文:https://www.cnblogs.com/shanshan-test/p/12977496.html