社区
语言基础/算法/系统设计
帖子详情
在C中用#pragma pack(n)改变字节对齐方式,在delphi中如何实现。
guchangchun
2004-12-07 02:09:01
譬如:
在C中
#pragma pack(4)
struct test
{
double x1;
int x2;
double x3;
}
#pragma pack()
在delphi中如何实现
record test=
begin
x1:Double;
x2:Integer;
x3:double;
end;
...全文
349
8
打赏
收藏
在C中用#pragma pack(n)改变字节对齐方式,在delphi中如何实现。
譬如: 在C中 #pragma pack(4) struct test { double x1; int x2; double x3; } #pragma pack() 在delphi中如何实现 record test= begin x1:Double; x2:Integer; x3:double; end;
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
武稀松
2004-12-08
打赏
举报
回复
{$ALIGN 1}, {$ALIGN 2}, {$ALIGN 4}, {$ALIGN 8}
或者{$A1}, {$A2}, {$A4}, {$A8}
packed record=....end;是紧密对齐方式,就是1字节对齐
民间导尿管
2004-12-08
打赏
举报
回复
{$A4}
ehom
2004-12-07
打赏
举报
回复
{$A4}
或者
Options中设置
上面那些GG们说的和你要的两回事
benbenliu
2004-12-07
打赏
举报
回复
我记得如果不加Packed Delphi是按自然边界对齐,加上Packed delphi就不加填料来对齐了,难道我记错了,不会吧??
guchangchun
2004-12-07
打赏
举报
回复
谢谢,再问一下,那么设置按多少字节对齐那?
如在C中,pack(4)表示按4个字节对齐,在Delphi中 packed record=....end;表示是按多少字节对齐那。
beyondtkl
2004-12-07
打赏
举报
回复
1. type tagRecord = packed record
ch: char;
end;
2. Project -> Options -> Compiler: Record field aligment :default is 8, you can change it to 1byte.
但是他這個是針對本工程裡所有的...而VC中可以 pack後 馬上pop 從而 可以控制任意區間內的設置.
ICMGDCHN
2004-12-07
打赏
举报
回复
同上,用packed
梅青松
2004-12-07
打赏
举报
回复
test= packed record
x1:Double;
x2:Integer;
x3:double;
end;
C/C++、OS、网络面经
深信服面经Q1. 结构体大小Q2. 什么是内存对齐?为什么要内存对齐?Q3. C语言
中
的堆和栈 Q1. 结构体大小 Q2. 什么是内存对齐?为什么要内存对齐? 结构体的sizeof涉及到
字节对齐
问题 为什么需要
字节对齐
?计算机组成原理教导我们这样有助于加快计算机的取数速度,否则就得多花指令周期了。
字节对齐
的细节和编译器的
实现
相关,但一般而言,满足三个准则: 1) 结构体变量的首地址能够被其最宽...
C#
中
结构体与字节流互相转换 [StructLayout(LayoutKind.Sequential)]
一、c#结构体 1、定义与C++对应的C#结构体 在c#
中
的结构体不能定义指针,不能定义字符数组,只能在里面定义字符数组的引用。 C++的消息结构体如下: //消息格式 4+16+4+4= 28个字节 struct cs_message{ u32_t cmd_type; char username[16]; u32_t dstID; ...
C++DLL编程详解
DLL(Dynamic Link Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的
方式
,如果采用静态链接库,则无论你愿不愿意,lib
中
的指令都被直接包含在最终生成的EXE文件
中
了。但是若使用DLL,该DLL不必被包含在最终EXE文件
中
,EX...
怎么拦截系统函数
怎么拦截系统函数
opengl常见问题
1.没有glDisable(GL_TEXTURE_2D),导致基本几何作图全部失败。 2.镜头位置没调好,导致所有物体不可见. 3.物体位置数据错误,导致物体大大超出镜头显示范围. 4.纹理没有GL_CLAMP导致边界拼接出现缝线. 5.纹理没有GL_REPEAT导致使用超出1.0纹理坐标技巧失败,显示单色插值. 6.没有glEnable(GL_TEXTURE_2D)导致全白纹
语言基础/算法/系统设计
16,746
社区成员
33,239
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章