如何在 MASM 中定义嵌套结构?
How to define a nested struct in MASM?
我试图在 MASM 中定义一个嵌套结构,但错误不是很有帮助,而且我找不到任何参考。
一个简单的例子如下:
.const
child struct
value byte ?
child ends
parent struct
Id byte ?
Child child {}
parent ends
.data
; ok
Parent1 parent {1}
; Error A2151: Missing operator in expression
; Error A2233: Invalid data initializer: Child
Parent2 parent {1, child {1}}
我需要在 Parent2
的定义中更正什么?
MASM 6.1 程序员指南列出了这些用于定义结构或联合类型变量的语法变体:
[[name]] typename < [[initializer [[,initializer]]...]] >
[[name]] typename { [[initializer [[,initializer]]...]] }
[[name]] typename constant DUP ({ [[initializer [[,initializer]]...]] })
初始化器(如果提供的话)应该只是在类型上与类型声明中定义的字段相对应的值。
因此,要定义一个 parent
变量,其中 Id
为 1,Child.value
为 2,您可以这样写:
Parent2 parent {1, {2}}
我试图在 MASM 中定义一个嵌套结构,但错误不是很有帮助,而且我找不到任何参考。
一个简单的例子如下:
.const
child struct
value byte ?
child ends
parent struct
Id byte ?
Child child {}
parent ends
.data
; ok
Parent1 parent {1}
; Error A2151: Missing operator in expression
; Error A2233: Invalid data initializer: Child
Parent2 parent {1, child {1}}
我需要在 Parent2
的定义中更正什么?
MASM 6.1 程序员指南列出了这些用于定义结构或联合类型变量的语法变体:
[[name]] typename < [[initializer [[,initializer]]...]] >
[[name]] typename { [[initializer [[,initializer]]...]] }
[[name]] typename constant DUP ({ [[initializer [[,initializer]]...]] })
初始化器(如果提供的话)应该只是在类型上与类型声明中定义的字段相对应的值。
因此,要定义一个 parent
变量,其中 Id
为 1,Child.value
为 2,您可以这样写:
Parent2 parent {1, {2}}