我想从函数 B 中的调用函数 A 的传入参数中访问数据。有办法吗?
#define get_caller_incoming_arg(call) 0
void B(int z)
{
int _arg0 = get_caller_incoming_arg(0);
printf ("in A(arg0): %x\n", _arg0);
printf ("in B: %x\n", z);
}
void A(int x)
{
int buff[10];
for (int i = 0; i < 10; ++i)
buff[i] = i + 5;
B(buff[1]);
}
int main(int argc, const char * argv[])
{
A(0xdeadbeef);
return 0;
}
目标机器是运行OSX的x86_64,编译器是clang
答案 0 :(得分:0)
尝试创建一个全局变量,然后将参数值传递给该变量,如代码
中所示#define get_caller_incoming_arg(call) 0
int value=0;
void B(int z)
{
int _arg0 = get_caller_incoming_arg(0);
int valueofA=value;
printf ("in A(arg0): %x\n", _arg0);
printf ("in B: %x\n", z);
}
void A(int x)
{
int buff[10];
value=x;
for (int i = 0; i < 10; ++i)
buff[i] = i + 5;
B(buff[1]);
}
int main(int argc, const char * argv[])
{
A(0xdeadbeef);
return 0;
}