Chinaunix

标题: 设置函数返回值通过栈返回 [打印本页]

作者: woshizzb    时间: 2014-01-20 16:52
标题: 设置函数返回值通过栈返回
请教,内核代码中 asmlinkage/ fastcall 可以设置函数参数通过 栈/寄存器 传递,  有没有什么属性是可以设置 返回的返回值通过 栈传递的? 谢谢~
作者: humjb_1983    时间: 2014-01-21 11:35
woshizzb 发表于 2014-01-20 16:52
请教,内核代码中 asmlinkage/ fastcall 可以设置函数参数通过 栈/寄存器 传递,  有没有什么属性是可以设置 ...

网上找的,供参考:
#include <stdio.h>


void __declspec(naked) __stdcall return_a_value()
{
int local;
local = 1990; // 栈空间
__asm ret
}

int main()
{
int local = 1;
return_a_value(); // 用栈返回值
printf("%d\n", local);
return 0;
}
作者: gaojl0728    时间: 2014-01-23 15:23
楼上贴的是windows VC 编译器的实现吧, 人家问的是linux+gcc
作者: humjb_1983    时间: 2014-01-23 16:49
确实是VC的,gcc好像确实不支持,不好意思~~
作者: woshizzb    时间: 2014-01-24 13:53
感谢楼上热心回复




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2