import std.range : cycle;
void foo() pure @safe {
cycle([1, 2]);
}
Run Code Online (Sandbox Code Playgroud)
今天我遇到了用D语言编写的程序.我试图了解它的汇编代码,从一个简单的函数开始.
pure nothrow @nogc @safe std.range.Cycle!(int[]).Cycle std.range.cycle!(int[]).cycle(int[]):
push rbp
mov rbp,rsp
sub rsp,0x40
mov QWORD PTR [rbp-0x20],rdi
mov QWORD PTR [rbp-0x10],rsi
mov QWORD PTR [rbp-0x8],rdx
... rest of the function
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几次读它,但无法理解为什么
std.range.cycle()得到3个参数(RDI,RSI和RDX),或者我的范围是([1, 2]).它不是一个类似C的结构?
或者我错过了什么?