关于几道sizeof题的疑问??

younggunz 2006-05-30 08:41:25
1.struct test
{
char a:2;
short b:2;
char c;
};
sizeof(test) == 6??为何是6??我觉得应该是2啊,如同
struct test{
unsigned short a:4;
unsigned short b:5;
unsigned short c:9;
unsigned short d:5;
};
sizeof(test)=4一样


2.struct a
{
unsigned aa;
unsigned bb;
unsigned long cc;

};
sizeof(a)=12,为何是12???我觉得应该是8啊
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
无知者无谓 2006-05-30
  • 打赏
  • 举报
回复
虽然你结帖了,不对的我还得说,
1.struct test
{
char a:2;
short b:2;
char c;
};

对于这个不同的编译器有不同的做法,不能像xpdavis(咕嘟) 一句话就完事的。
下面的代码:
struct test
{
char a:2;
short b:2;
char c;
};

int main ()
{
struct test *t = (struct test*)malloc (sizeof(struct test));
printf ("structure size is %d\n", sizeof (struct test));
printf ("0x%08X\t0x%08X \n", (unsigned)t, (unsigned)(&(t->c)));
}
再gcc编译的输出是:
structure size is 2
0x0804A008 0x0804A009

并没有“不同类型的位域不能合并”的现象
younggunz 2006-05-30
  • 打赏
  • 举报
回复
谢谢楼上的 ,汗啊 ,我一直就以为unsigned=unsigned short啊
结帖 ,送分~~~
铖邑 2006-05-30
  • 打赏
  • 举报
回复
1.不同类型的位域不能合并,所以是6,每个成员占用2个字节

2.unsigned=unsigned int占4个字节,所以是12
freshman1995 2006-05-30
  • 打赏
  • 举报
回复
凑一下热闹,不同的顺序有不同的结果。
struct test1
{
char a:2;
short b:2;
char c;
};

struct test2
{
char a:2;
char c;
short b:2;
};
他们的结果是不同的,sizeof(test1)=6,sizeof(test2)=4
原因就是后者a先与c对齐,然后合并与b对齐。
内容概要:本文围绕柔性机器人执行器的建模与控制算法展开研究,提出了一种基于Matlab代码实现的方法,能够从多个参数集中批量生成即用型关节执行器模型类。该模型充分考虑了柔性执行器中的多种非线性动力学效应,如弹性变形、迟滞特性、摩擦与阻尼等,提升了模型在实际工况下的精度与适用性。研究不仅实现了模块化、可复用的建模范式,还为后续控制器设计提供了高保真仿真基础,有效支撑柔性机器人系统的动态性能分析与优化控制策略验证。; 适合人群:具备一定机器人动力学与控制理论基础,熟悉Matlab/Simulink仿真环境,从事柔性机器人、精密执行器或智能结构系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 快速构建面向不同物理参数的柔性执行器仿真模型,提升科研效率;② 深入分析非线性动力学效应对系统性能的影响机制;③ 验证先进控制算法(如自适应控制、鲁棒控制、智能控制)在高精度柔顺控制中的有效性; 阅读建议:建议读者结合文中提供的Matlab代码实例,动手实践模型构建流程,重点关注参数化接口设计与非线性项的数学表征方式,并尝试扩展至多自由度系统或硬件在环实验平台以深化理解。
已经博主授权,源码转载自 https://pan.quark.cn/s/fa4d4dc3106f 在本研发计划中,“UE4配备AI的汽车能够自主运行”,这表明我们当前的研究重点是运用Unreal Engine 4(缩写为UE4)构建的具备人工智能(AI)技术的自动驾驶汽车仿真系统。Unreal Engine 4是一款功能卓越的游戏构建平台,其应用广泛涵盖游戏设计、虚拟现实(VR)、增强现实(AR)以及即时视觉呈现等多个方面。其卓越的图形处理能力和高度可编程的脚本架构使其成为构建复杂交互式场景的优选工具,特别是用于模拟自动驾驶汽车。通过UE4的赛车主标识,可以明确该项目集中于汽车竞赛场景。在Unreal Engine 4环境中,开发者能够建立精细化的赛道布局,并模拟现实世界的物理现象,包括摩擦系数、重力作用和空气动力学效应,从而为人工智能控制的车辆创造一个高度仿真的驾驶条件。借助定制的人工智能控制器蓝图,我们可以使汽车遵循既定的驾驶策略操作,例如规避障碍、维持速度以及路径导航。UE4汽车人工智能的标签凸显了此项目的关键——人工智能技术的核心应用。在此研发计划中,人工智能或许综合运用了路径规划、决策管理和感知技术来操控车辆的运行。常规的做法包括采用行为树(Behavior Tree)来设定车辆的行为模式,整合传感器信息(例如雷达探测和图像捕捉)以获取环境信息,以及运用路径规划方法(比如A*搜索算法)来确定最优的行驶路线。UE4人工智能运动学标识指出,人工智能不仅限于静态策略的制定,还涉及到动态操控,诸如车速的调节和方向控制。人工智能或许通过模拟驾驶动力学来实现这些动态功能,确保车辆在行驶期间保持稳定性,并能够对道路状况的变化做出即时响应。项目中的“CarAIProject”...

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧