标题:字节数组不使用循环转换成整数型数组
只看楼主
nmgbtzyf
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-12-1
结帖率:0
 问题点数:0 回复次数:3 
字节数组不使用循环转换成整数型数组
字节数组不使用循环转换成整数型数组
搜索更多相关主题的帖子: 数组 循环 字节 转换 整数 
2021-03-10 18:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
转换指针类型
或用联合体:
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
    union data {char s[10]; int a[2];};
    union data d;
    d.a[0] = 1145258561;
    d.a[1] = 1684234849,
    printf("%d, %.4s\n",d.a[0], d.s);
    printf("%d, %.4s\n",d.a[1], &d.s[4]);
    strcpy(d.s, "ABCDabcd");
    printf("%d, %.4s\n",d.a[0], d.s);
    printf("%d, %.4s\n",d.a[1], &d.s[4]);
    return 0;
}
2021-03-10 20:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
反过来可以,强制类型转化就行了(在严格别名中有个例外,就是类型双关为char兼容类型);
但正向不行,因为违反了严格别名的规定。在标准中只有 memcpy 函数可以消除
2021-03-11 13:19
nmgbtzyf
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-12-1
得分:0 
很感谢你的回答,但是我的功底还是学的不到位,联合体一直没有应用过
看了一些资料。  似乎可以达到我想要的效果。  但是还需要具体的测试。   
如果有问题还要麻烦你谢谢!
2021-03-11 21:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505074-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.322352 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved