7
这是一个编译器错误?为什么我不能在asm块中使用编译器内部函数?
program Project44;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
function Test: integer;
asm
xor eax,eax
add eax,SizeOf(NativeInt);
end;
begin
WriteLn(Test); //Typically outputs 31 or 49
{$ifdef CPUX86}
WriteLn('should be 4');
{$else}
{$ifdef CPUX64}
WriteLn('should be 8');
{$endif}{$endif}
ReadLn
end.
该程序输出各种东西,除了4/8。
这是一个错误,或者它记录的是我不能在汇编使用sizeof和其他编译器内在?
如果我想使用SizeOf(xx)
在ASM块我该怎么办?
我猜你的代码只是一个示例是,所以把这个作为一个旁注;在这种情况下,你可以声明一个常量。 – TLama