博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言数据类型
阅读量:6700 次
发布时间:2019-06-25

本文共 2277 字,大约阅读时间需要 7 分钟。

参考文章

数据类型一览表

算数类型(arithmetic type)

字符类型

signed char     有符号字符unsigned char   无符号字符char            字符(可以是 signed char 或 unsigned char,由实现定义)// 除此之外,还定义了宽字符(c11):1. wchar_t2. char16_t3. char32_t

整数类型

1. 短整形

shortsigned shortshort intsigned short int// 等价于short int

2. 无符号短整形

unsigned shortunsigned short int// 等价于unsigned short int

3. 整形

signedintsigned int// 等价于int

4. 无符号整形

unsignedunsigned int// 等价于unsigned int

5. 长整型

longlong intsigned longsigned long int// 等价于long int

6. 无符号长整型

unsigned longunsigned long int// 等价于unsigned long int

7. long long int(c99,不懂该怎么称呼了...)

long longlong long intsigned long longsigned long long int// 等价于long long int

8. unsigned long long int(c99)

unsigned long longunsigned long long int// 等价于unsigned long long int

数据模型

每种实现对数据类型的大小选择统称为 数据模型,以下四种是大家普遍接受的数据模型:

32 System

1. LP32 2/4/4,(int 16bit,long & pointer 32bit)    1. 仅出现在 win16 API 中2. LP32 4/4/4,(int,long,pointer 32bit)    1. win32 API    2. 类 unix 系统(linux or mac)

64 System

3. LP64 4/4/8,(int & long 32big,pointer 64 bit)4. LP64 4/8/8,(int 32 bit,long & pointer 64 bit)

其他模型非常罕见(几乎可以不用理会,实际就是无需理会)!举一个例子,数据模型 LP64 8/8/8(int & long & pointer 64 bit),这种数据模型只出现在早期的 unix 机器上

浮点类型

1. float    单精度浮点型    32bit(4byte)2. double   双精度浮点型    64bit(8byte)3. long double 扩展精密浮点型(需要机器支持) >=64 bit

如果使用了 complex.h,表示需要用到复杂的浮点数

以下写法都是有效的:

float _complex          float complexdouble _complex         double complexlong double _complex    long double complexfloat _imaginary        float imaginarydouble _imaginary       double imaginarylong double _imaginary  long double imaginary

原子类型(atomic type),限定符

支持以下三种写法:

// p 是指向原子 const int 的指针_Atomic const int * p1;// 同上const atomic_int * p2;// 同上const Atomic(int) * p3;

原子类型的对象是唯一不受数据竞争的对象,也就是说,它们可以由两个线程并发地修改,或者由另一个线程修改。

拥有以下四个相关属性:

1. 写入一致性(write-write-coherence)2. 读取一致性(read-read-coherence)3. 读写一致性(read-write-coherence)4. 写读一致性(write-read-coherence)

具体解释参考官方文档:

目前的 visual studio 中不支持该类型

由 typedef 引入的说明符

// 声明 int_t 是 int 的别名typedef int int_t// 进阶// char_t 是 char 的别名// chart_p 是 char* 的别名// fp 是 char(*)(void) 的别名typedef char char_t, *char_p, (*fp)(void)

修饰符

const

// 常量不可改动const int a = 10;

volatile

// 提醒计算机:// a 变量可能会实时更新,不能缓存// 这个一般多用在多线程场景下volatile int a = 10;

restrict

特殊的常量

INFINITY    无穷NaN         非数字

数值范围

如果需要准确的了解到数值的范围,请参阅(页面底部):

转载地址:http://tamoo.baihongyu.com/

你可能感兴趣的文章
Powershell检测AD账户密码过期时间并邮件通知
查看>>
CentOS7安装OpenFire
查看>>
ActiveMQ(07):ActiveMQ结合Spring开发--建议
查看>>
keepalived与lvs结合使用配置实例
查看>>
yum 安装apache php mysql
查看>>
nagios监控服务器的搭建
查看>>
CentOS四种方法自建yum仓库
查看>>
从P560小型机B181201B故障代码识别手把手详解
查看>>
Eclipse中安装Ext插件(Spket IDE)
查看>>
Sql server优化50法
查看>>
使用Server 2008新GPO做驱动器映射
查看>>
Citrix XenServer 池要求
查看>>
RHEL 5服务篇—常用网络配置命令
查看>>
不懂卷积神经网络?别怕,看完这几张萌图你就明白了
查看>>
PostgreSQL Frontend/Backend protocol (通信协议)
查看>>
Struts2教程9:实现自已的拦截器
查看>>
在 ActiveReports 中嵌入 Spread 控件
查看>>
Java网络编程从入门到精通(5):使用InetAddress类的getHostName方法获得域名
查看>>
从全息投影到全息平台,必须克服7个障碍
查看>>
烂泥:通过vsphere给esxi添加本地硬盘
查看>>