Я любопытно, что эквивалент (например)Встроенный ассемблер эквивалент .data директивы MASM
.data
x dword 42
.code
main proc
; Do stuff here.
ret
main endp
end
было бы, если бы я писал ассемблерные (в D). Я понимаю, что я мог бы сделать что-то вроде
int main()
{
int x = 42;
asm
{
// Do stuff here.
}
return 0;
}
, но точка упражнения не «обмануть» с помощью самого D.
На самом деле, в приведенном выше коде, который вы считаете обманом, память для 'x' не выделяется в разделе данных. Он выделяется в стеке. – Aaron
Я сомневаюсь, что вы можете выделить память в разделе данных, используя встроенную сборку. Но если вы хотите создать глобальную переменную, память этой переменной будет выделена в разделе данных. – Aaron
'const int x = 42;' или 'static int x = 42;'? – BCS