有人可以使用fastcall与gcc一起使用吗?如果可能的话,你可以在不使用fastcall的情况下提供等效的电话,并解释它们会有什么不同吗?
给定函数调用在C代码中的显示方式没有区别.唯一的区别在于函数声明.在GCC手册有更多的细节.
$ cat fastcall.c extern void foo1(int x, int y, int z, int a) __attribute__((fastcall)); extern void foo2(int x, int y, int z, int a); void bar1() { foo1(99, 100, 101, 102); } void bar2() { foo2(89, 90, 91, 92); } $ gcc -m32 -O3 -S fastcall.c -o - . . bar1: . . movl $100, %edx movl $99, %ecx movl $102, 4(%esp) movl $101, (%esp) call foo1 . . bar2: . . movl $92, 12(%esp) movl $91, 8(%esp) movl $90, 4(%esp) movl $89, (%esp) call foo2