我正在学习 x86程序集,我发现了这个声明:
array1 DB 5 DUP(2 DUP('*'))
该声明的作用是什么?
为名为array1
的数组分配空间,其大小为DB * 5 * 2 = 10
和10 *
个元素。
为名为ærray1
的数组分配空间,其大小为DB * 5
和5 **
个元素。这意味着将丢弃5个*
元素。
分配一个名为array1
的多维数组,其大小为[5][2]
和5个{'*', '*'}
元素。
那么,这个声明是否等同于
char array1[10] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}
或等同于
char array1[5] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}
或者也许:
char array1[5][2] = {{'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}}
答案 0 :(得分:1)
根据注释,声明在内存中分配一个包含10个连续*
字符字节的数组。