----数据类型长度

C99标准并不规定具体数据类型的长度大小。计算机具有不同位数的处理器,16,32和更高位的64位处理器,在这些不同的平台上,同一种数据类型具有不同的长度。

char,short,长度相同,分别为1和2个字节。

int 在32和64位处理器上皆为4个字节,在16位上是2个字节。

long在16和32位处理器上皆为4个字节,在64位上是8个字节。

long long 在16和32位处理器上皆为8个字节.

指针类型的位数与各个处理器的位数相同,分别位16,32,64位。

为了便于平台的移植,需要确保数据类型长度的一致,引用stdint.h头文件,利用宏定义固定数据类型的长度。

typedef signed char       int8_t
typedef short int int16_t;
typedef int int32_t;
# if __WORDSIZE ==
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t; //unsigned type is the same and omitted here

----uintptr_t,intptr_t

指针类型的长度与处理器的位数相同,需要对指针进行运算时,利用intptr_t类型,引用stddef.h头文件

#if __WORDSIZE == 64
typedef long int intptr_t;
#else
typedef int intptr_t;
#endif
//unsigned type is the same and omitted here

----编程中要尽量使用sizeof来计算数据类型的大小

----size_t, ssize_t (in stddef.h)

Are the types size_t and uintptr_t equivalent?(http://www.viva64.com/en/k/0024/)

二者数值上相同,同处理器步长。

--in practice you can consider them equivalent and use them as you like.

Usually size_t is used to emphasize we are dealing with a object containing same size,number of elements or iterations;   The type uintptr_t is good for pointers.

C 数据类型 长度的更多相关文章

  1. B+索引、Hash索引、数据类型长度

    1.为什么在数据库中要用B树索引而不是Hash索引? Mysql Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这 ...

  2. 计算机基础理论知识梳理篇(一):数据类型长度、内存页、IPC

    字长与数据类型长度 字长指CPU在同一时间能够处理二进制数据的位数,是由其外接数据总线(地址总线决定了CPU的寻址空间,如16位微型机的地址总线为20位,其可寻址空间为220 = 1MB)的条数决定的 ...

  3. C语言的基本数据类型长度

    PS:以下内容是在Xcode的编辑器64位环境下的测试结果,网上有关于64位和32位各数据类型存在的差异,请自行online search. main.m #import <Foundation ...

  4. MySql数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述): SELECT table_name name,TABLE_COMMENT value FROM INFORMATION_SCHEMA.TABLES WHERE table ...

  5. SqlServer数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述) Value ) AS value FROM sysobjects a Where a.xtype = 'U' AND a.name <> 'sysdiagram ...

  6. Oracle数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述) Select table_Name As Name,Comments As Value From User_Tab_Comments Where table_Type='T ...

  7. PostgreSql数据库查询表信息/列信息(列ID/列名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)

    查询表信息(表名/表描述) select a.relname as name , b.description as value from pg_class a ) b on a.oid = b.obj ...

  8. 关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总

    32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样): linux64            ...

  9. mysql中的数据类型长度

    “mysql中的数据类型长度是固定的 数据类型后面改的只是展示长度 没用的 int就是四个字节 2的31次方减一是最大值 所以改这个长度没用 只能改数据类型”

随机推荐

  1. 将Rmarkdown文件转为pdf文件

    knitr包只能够将R markdown文件转为html格式,若想要将其转化为pdf格式,还要安装另一个包 # Install and load package install.packages(&q ...

  2. iframe的使用

    function Report() {           var info = document.getElementById("iframeReport");          ...

  3. 【Jenkins】jenkins简单搭建并执行任务

    part 1  jenkins用户名的配置(gerrit 2.11) #安装jenkins $ sudo apt-get install jenkins #为jenkins用户设定密码 $ sudo ...

  4. LeetCode() Issomorphic Strings

    bool isIsomorphic(string s, string t) { int size=s.size(); if (size==0) return true; char ch[128],is ...

  5. Python 学习之 NumPy

    NumPy(Numerical Python的简称) 是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表 ...

  6. lua遍历文件夹, zerobrane下载

    参考的这个http://www.cnblogs.com/jiufangding/p/3931585.html,配合批处理. zerobrane下载(上一篇博客忘掉了): http://files.cn ...

  7. javascript createElement ttf

    var icon= document.createElement("a");icon.className="iconfont";icon.innerHTML=& ...

  8. Token验证失败

    Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...

  9. JSONP理解和使用

    一.代码使用: $.ajax({ async:false, url: http://跨域的dns, type: "GET", dataType: 'jsonp'}); 二.理解: ...

  10. css3++js钟表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...