%llu mysql 类型_C/C++ 数据类型与修饰符

C++支持的数据类型:类型位范围char1 个字节-128 到 127 或者 0 到 255

unsigned char1 个字节0 到 255

signed char1 个字节-128 到 127

int4 个字节-2147483648 到 2147483647

unsigned int4 个字节0 到 4294967295

signed int4 个字节-2147483648 到 2147483647

short int2 个字节-32768 到 32767

unsigned short int2 个字节0 到 65,535

signed short int2 个字节-32768 到 32767

long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

signed long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned long int8 个字节0 to 18,446,744,073,709,551,615

float4 个字节+/- 3.4e +/- 38 (~7 个数字)

double8 个字节+/- 1.7e +/- 308 (~15 个数字)

long double16 个字节+/- 1.7e +/- 308 (~15 个数字)

wchar_t2 或 4 个字节1 个宽字符

C++修饰符类型:修饰符应用signed、unsigned应用于整型int、字符型char、long和short修饰符前缀

long应用于整型int、双精度型double

short应用于整型int

修饰长度:类型名长度表示int4字节%d

short2字节%hd

long8字节%ld

long long8字节%lld

unsigned int4字节%u

unsigned short2字节%hu

unsigned long8字节%lu

unsigned long long8字节%llusigned 有符号的数(基本省略)

unsigned 无符号的数(所有的都是用来修饰int 所以int 是可以省略)

C++类型限定符:限定符含义constconst 类型的对象在程序执行期间不能被修改改变。

volatile修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率。

restrict由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。

C++ 存储类

static存储类

static 存储类,指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

其作用域仅局限于本文件,使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。static理解:

A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;

B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;

C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

全局变量以及全局变量与静态变量的关系:

顾名思义,全局变量是指能够在全局引用的变量,相对于局部变量的概念,也叫外部变量;同静态变量一样,全局变量位于静态数据区,全局变量一处定义,多处引用,用关键字“extern”引用“外部”的变量。

全局变量也可以是静态的,在前面有过说明,静态全局变量的意义就是不让“外部”引用,是单个源文件里的全局变量,即是编译阶段的全局变量,而不是连接阶段的全局变量。

补充

和机器字长及编译器有关系:

所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):1. sizeof(short int)<=sizeof(int)

2. sizeof(int)<=sizeof(long int)

3. short int至少应为16位(2字节)

4. long int至少应为32位。

unsigned 是无符号的意思。

例如:16位编译器

char :1个字节

char*(即指针变量): 2个字节

short int : 2个字节

int: 2个字节

unsigned int : 2个字节

float: 4个字节

double: 8个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

32位编译器char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

64位编译器char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 8个字节

long long: 8个字节

unsigned long: 8个字节

本文由 weti 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: May 12, 2019 at 11:17 pm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值