Stel ik heb een code fragment:
Nu gebruik ik dus _stdcall voor de aanroep van de functie fac1, zodat ik de windows conventie wordt gebruikt. Echter, wat heeft het eigenlijk voor effect om hier _stdcall voor te zetten. Je zou natuurlijk ook de C conventie kunnen gebruiken. Volgens mij heeft het iets met de stack te maken.
Ik vroeg mij dit af nadat ik (delen van) dit fragment in asm gezien heb. Ik hoop dat iemand mij duidelijkheid kan verschaffen over het nut en/of effect van _stdcall op ASM niveau.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| int _stdcall fac1(int n)
{
int f = 1, k;
for(k=1; k<=n; k++)
f *= k;
return f;
}
int fac2(int n)
{
if(n > 1)
return n * fac2(n-1);
else
return 1;
}
void main(void)
{
int n;
printf("n = ");
scanf("%d", &n);
printf("fac1 n = %d\n", fac1(n));
printf("fac2 n = %d\n", fac2(n));
} |
Nu gebruik ik dus _stdcall voor de aanroep van de functie fac1, zodat ik de windows conventie wordt gebruikt. Echter, wat heeft het eigenlijk voor effect om hier _stdcall voor te zetten. Je zou natuurlijk ook de C conventie kunnen gebruiken. Volgens mij heeft het iets met de stack te maken.
Ik vroeg mij dit af nadat ik (delen van) dit fragment in asm gezien heb. Ik hoop dat iemand mij duidelijkheid kan verschaffen over het nut en/of effect van _stdcall op ASM niveau.