问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据类型的级别在C语言中有什么实质性的用处?

发布网友 发布时间:2022-04-24 17:19

我来回答

1个回答

热心网友 时间:2022-04-08 04:05

一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:
16位平台
char 1个字节8位
short 2个字节16位
int 2个字节16位
long 4个字节32位
指针 2个字节
32位平台
char 1个字节8位
short 2个字节16位
int 4个字节32位
long 4个字节
long long 8个字节
指针 4个字节
64位平台
char 1个字节
short 2个字节
int 4个字节
long 8个字节(区别)
long long 8个字节
指针 8个字节(区别)
二、编程注意事项
为了保证平台的通用性,程序中尽量不要使用long数据库型。可以使用固定大小的数据类型宏定义,这些宏定义需要引用stdint.h头文件:
typedef signed char int8_t
typedef short int int16_t;
typedef int int32_t;
# if __WORDSIZE == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
#endif
三、使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台字长,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,使用它可以安全地进行整数与指针的转换运算,也就是说当需要将指针作为整数运算时,将它转换成intptr_t进行运算才是安全的。intptr_t需要引用stddef.h头文件,它的定义如下:
#if __WORDSIZE == 64
typedef long int intptr_t;
#else
typedef int intptr_t;
#endif
编程中要尽量使用sizeof来计算数据类型的大小
以上类型定义都有相应的无符号类型。
四、使用ssize_t和size_t
它们分别是unsigned和signed size of computer word size。它们也是表示计算机的字长,在32位机器上是int型,在64位机器上long型。使用它们对于增加平台的通用性有很大好处,从某种意义上来说它们等同于intptr_t和uintptr_t。使用它们也需要引用stddef.h头文件。
五、socket的accept函数在有些操作系统上使用size_t是不正确的,因为accept接收的int*类型,而size_t的长度可能会超过int*的长度*,导致错误。后来BSD使用sock_t来替代它。

转自:http://blog.csdn.net/kongdefei5000/article/details/38866985
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小鹏交付怎么评分 2024年5月趋乾黄道吉日 2024年5月哪天适合趋乾 2024年6月词讼黄道吉日 2024年6月哪天适合词讼 2024年8月成服黄道吉日 2024年8月哪天适合成服 2024年8月26日黄道吉日 百度识图在线识别这个人是 百度怎样识别明星是谁? 海绵城市都建什么 包钢股票前景如何 600010包钢股份这支股票我现在被套百分之六了,后市该怎么操作,适合做长 ... 100悬赏翻译 100悬赏翻译! 本文标题的作用 本文标题的作用 详写泥墙根一带的无线乐趣,特别是详写拔何首乌,其作用是什么? 详写泥墙根一带的无线乐趣,特别是详写拔何首乌,其作用是什么? 《从百草园到三味书屋》文中对描写拔何首乌的根的描写,表现了作者怎样的心理?这样写有什么作用》 《从百草园到三味书屋》文中对描写拔何首乌的根的描写,表现了作者怎样的心理?这样写有什么作用》 从百草园到三味书屋描写拔何首乌根的作用是什么 作业啊 描写拔菜动作的词语 描写拔菜动作的词语 Google Android开发入门与实战的作品目录 请问,描写拔花生和摘花生的优美句子都有那些?越多越好急!!!!! 帮我写拔钟的写十个,帮帮忙了 帮我写拔钟的写十个,帮帮忙了 上智齿两颗需要签写拔漏、鼻子喷水风险?!——下两颗阻生已拔 上智齿两颗需要签写拔漏、鼻子喷水风险?!——下两颗阻生已拔 寒假乐事作文是写拔鸭毛 写拔河的作文四百个字 Android2.0游戏开发实战宝典的图书目录 c语言翁凯期末考试字数统计编程答案 c语言字符串匹配问题 如何实现网页表格中一行多出的文字变成省略号或者隐藏 Verilog通过文件去定义管脚? C语言题目任意输入一个文件,统计其中单词出现的次数,并按序排序,给出前20个单词的列表及其出现次数。 C语言-数据结构-删除句子中重复的单词 如何产生依赖文件 Linux C programming 微软雅黑如何用自己的程序加载上? 用C语言编程实现学生基本信息管理系统 求一个CRC校验C++源代码。题目:发送数据为1101011011,生成的多项式为P(X)=X4+X+1(X4为X的4次方), C语言动态链表,改写程序,学生的人数由用户输入获得,使用链表实现。用malloc和free动态申请和释放内存 在access中的”OLE对象”字段存储形式为二进制? c语言怎样才能输出中文???(最简单的方法) 请问网页制作中点击网站里的大字能让字体变大,点击小字能让字体变小怎么做........ VHDL语言里的For循环 怎样在阿里巴巴上怎样申请知识产权 阿里巴巴产品被人投诉知识产权侵权怎么办? 按投资项目之间的相互关系,投资可以分为哪三类? 阿里巴巴知识产权认证和淘宝认证不是同一个人怎么办? 雷士照明灯泡,创始人如何处理与投资者的关系?