0

我正在研究x86 assembly,我遇到了这个声明:

array1 DB 5 DUP(2 DUP('*'))

这个声明有什么作用?

  1. 为名为 的数组分配空间array1,大小DB * 5 * 2 = 10为 10 个*元素。

  2. 为名为 的数组分配空间ærray1,其大小为DB * 55 个**元素。这意味着有 5 个*元素被丢弃。

  3. 分配一个名为 的多维数组array1,具有大小[5][2]和 5 个{'*', '*'}元素。

那么,这个声明是否等同于

char array1[10] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}

还是相当于

char array1[5] = {'*', '*', '*', '*', '*', '*', '*', '*', '*', '*'}

?

或者可能:

char array1[5][2] = {{'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}, {'*', '*'}}

?

4

1 回答 1

1

根据评论,该声明*在内存中分配了一个具有 10 个连续字符字节的数组。

于 2014-02-21T15:46:56.140 回答