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