C语言中用函数实现整型数据位宽,如16,32位,不可以使用sizeof
来源:互联网 发布:有生活情趣的人 知乎 编辑:程序博客网 时间:2024/06/08 07:11
在判断int位宽的时候,一般使用sizeof(int)实现,现在讨论一下,不用sizeof()来实现整数位宽。
基本思想:可以利用地址之间的差值来确定整数位宽,代码实现为:
#include<stdio.h>
void main(){
int a[2];
int b;
b=(int(&a[1])-int(&a[0]))*8;
printf("%d\t",b);
}
会存在这样的错误:b=(&a[1]-&a[0])*8;这个时候的值运行为8,而上面程序值为32,两个的区别为:
b=&a[1]-&a[0]=a+1-a=1是差值,是没有物理意义的
b=(int)&a[1]-(int)&a[0]两个地址的值是int类型的字节数,是有物理意义的。
0 0
- C语言中用函数实现整型数据位宽,如16,32位,不可以使用sizeof
- C语言中用结构实现位段
- C 语言实现当前操作系统多少位,不用sizeof。
- C语言数据定义长度 16位、32位、64位
- 64位整型使用
- c语言sizeof()在32位及64位系统的区别
- 【C语言】请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”
- C语言请实现字符串循环右移函数。列如字符串“abcdefghi”向右移2位就是“hiabcdefg”
- C语言 64位整型的printf格式控制
- MD5算法C语言实现16、32位版
- C/C++ 32位/64位 sizeof(数据类型)
- C语言实现16位和32位按字节反转
- C语言位域使用
- MD5 C语言16位和32位版本
- C语言实现大整型数据乘法
- 如何判断一个操作系统是16位还是32位的?不能用sizeof()函数
- 如何用c语言寻找十进制数二进制的奇数位.偶数位.任意位
- 【C语言位运算的应用】如何按bit位翻转一个无符号整型
- 【Java并发编程】之八:多线程环境中安全使用集合API(含代码)
- matlab保存图像去除白框
- 如何使用 xcodebuild命令archive导出ipa文件?
- 教你实现别人家的动画2
- 【万里征程——Windows App开发】使用华丽丽的字体
- C语言中用函数实现整型数据位宽,如16,32位,不可以使用sizeof
- 关于使用Jquery Ajax点击checkbox 获取数据库 实现刷新当前页面
- 2015-04-08-数据聚合与分组运算(3)-透视表和交叉表+2012联邦选举委员会数据库
- Java注解方法
- Merge Two Sorted Lists
- STM32库函数编程学习心得:assert_param的应用
- Python 安装第三方库,模块和包的安装方法
- hdu 2027 java函数 水过~~~~
- Java类变量初始化顺序