作者stupid0319 (徵女友)
看板C_and_CPP
標題Re: [問題] struct 取值跟宣告
時間Fri Oct 15 13:07:10 2010
※ 引述《loveflames (咕啾咕啾魔法陣)》之銘言:
struct S{
int a[10];
};
main(){
S test;
test.a[0]=1;
LPVOID x = &test;
__asm mov eax,x;
funA();
}
funcA(){
S* lps;
__asm mov lps,eax
printf("test.a[0]=%x\n",lps->a[0]);
}
如果像這樣呢
: 不用參數的取法
: #include <stdio.h>
: struct S{
: int a[10];
: };
: void funcA(){
: int a;
: __asm{
: mov edx,[ebp]
: mov ebx,[edx-40]//如果compiler有對齊之類的就未必是40
: mov a,ebx
: }
: printf("test.a[0]=%x\n",a);
: }
: main(){
: struct S test;
: test.a[0]=1;
: funcA();
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.78.26
推 purpose:乍看下應該可以的 (沒驗證) 10/15 13:18
推 loveflames:暫存器最好別用eax,因為很容易被改 10/15 13:20
推 SmallBeeWayn:我覺得原PO應該不是想要這麼底層的答案耶... 10/15 17:07
推 ilovebbs:大家應該都複雜化了吧..囧 10/16 09:57