结构体内部顺序问题

fzl2497 2011-04-12 09:36:37
求助,结构体内部顺序是怎么安排的?定义一个结构如下:
public struct struct1
{

public string name;
public int age;
public string address;

}

但是使用的时候结构体的顺序会为
{
address
age
name
}
貌似会按照字母顺序排序,这会不会影响到调用c++时传递此结构出错呢?求教各位高手.
...全文
190 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-04-12
  • 打赏
  • 举报
回复
理论上还是先定义的排在前面。

但是默认情况下和C语言的不兼容,需要加上
[StructLayout]
bdmh 2011-04-12
  • 打赏
  • 举报
回复
那是显示顺序,内存中不会的
fzl2497 2011-04-12
  • 打赏
  • 举报
回复
暂时验证不出来,2楼的说法是我已做了的
计算机逻辑设计 250 port(clk, d1: in std_logic; q1: out std_logic); 对于图(b),相应的 port 语句是 port(clk, d1: in std_logic; q1: buffer std_logic; c1: out std_logic); inout 模式可以代替 in、out、buffer 模式,inout 模式允许内部反馈。虽然 inout 模式能代替其 他模式,但在设计时,除非真正需要双向端口,建议不要使用 inout 模式。惯例是把输入端口指 定为 in模式,把输出端口指定为out模式,把双向端口指定为 inout模式。这一良好的设计习惯, 从端口的名称和端口模式就可以一目了然地判定信号的用途、性质、来源和去向,十分方便。对 于一个大型设计任务,大家协同工作,这样的描述不会引起歧义。另一方面,指定满足端口性能 的最基本模式,可以减少占用的器件内部的资源。 8.5.2 结构体(architecture) 结构体描述设计实体内部的特性。结构体的书写格式如下。 architecture 结构体名 of 实体名 is 内部信号,常量,数据类型,函数等的定义; begin 若干并行执行语句 end 结构体名; 实体名一定要与本结构体对应实体的实体名完全一致。architecture 后面的结构体名要与 end 后的结构体名完全一致,而不是与实体名一致。结构体名可以随便起,因为别的地方很少用到结 构体名。 结构体内要求使用并行执行语句。类似 if 之类的顺序执行语句,只要将它们放在并行语句 process 语句之内即可,process 语句是并行执行语句。 结构体有 3 种描述方式:行为描述、结构描述和数据流描述。 行为描述:描述该设计实体的功能,即该单元能做什么。 结构描述:描述该设计实体的硬件结构,即该设计实体的硬件是如何构成的。 数据流方式: 以类似于寄存器传输级的方式描述数据的传输和变换。主要使用并行执行的 信号赋值语句,即显式表示了设计实体的行为,也隐式表示了设计实体的结构。 其实初学者不用太钻研各种描述方式的定义,只要能正确描述设计实体的内部特性即可。信 号赋值语句有时作为并行执行语句,有时作为顺序执行语句,取决于它出现的地方。在要求顺序 执行语句的地方,它作为顺序执行语句;在要求并行执行语句的地方,它作为并行执行语句。通 过这个例子,可以看出不去细究某些概念是有道理的。下面举一个用行为描述方式描述结构体功 能的例子。 【例 8.16】 16 位寄存器的行为描述方式。 entity register_16bits is port(reset, clk, wen: in std_logic; d: in std_logic_vector(15 downto 0); q: out std_logic_vector(15 downto 0)); end register_16bits; architecture behave of register_16bits is

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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