[问题] 函式的参数

楼主: chuckAI (心的方向)   2014-06-17 23:42:56
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
补充说明(Supplement):
问题不太会描述 请多见谅
目标是希望可以读到函式参数的值 但不直接使用参数名
void fun1(int a, int b)
{
int c,d;
c=???????? (将a的值10存到c 但是不须要写出a )
d=???????? (将b的值20存到d 但是不须要写出b )
}
void main()
{
fun(10,20);
}
希望有高手可以帮我解惑 谢谢
作者: azureblaze (AzureBlaze)   2014-06-17 23:50:00
undefined behavior
作者: Nathan8489   2014-06-17 23:52:00
????????
作者: azureblaze (AzureBlaze)   2014-06-17 23:53:00
开组语看a放什么地方捞出来,然后祈祷compiler不要乱搞还有祈祷complier不要直接把a丢掉
楼主: chuckAI (心的方向)   2014-06-17 23:59:00
我似乎是遇到azu大说的问题 有读到a的位置 但compiler后会会跑掉
作者: azureblaze (AzureBlaze)   2014-06-18 00:05:00
有什么特别的理由需要这样做吗?
楼主: chuckAI (心的方向)   2014-06-18 00:24:00
因为有大量的函式需要纪录下里面那些参数 但每个函式参数名子却又都不一样 改起来工程浩大
作者: purpose (秀才遇到肥宅兵)   2014-06-18 00:45:00
用 regular expression 抓就好了
作者: AstralBrain   2014-06-18 01:10:00
这种事交给gdb吧
作者: elfkiller (没有暱称)   2014-06-18 02:23:00
是要自己写debugger?
作者: Killercat (杀人猫™)   2014-06-18 03:06:00
这看起来会因为call convention不同而必须有不同做法不过我觉得颇难 一来是function本身拿不到自己的pointer所以没办法hack自家的stack,二来则是我想就算拿的到应该也只有stdcall做的到你说的事情cdecl的话因为stack在caller那里管 callee(以本例来讲就是function自己)是没办法直接从内存hack到参数位置hum...stdarg搞不好可以在cdecl下做到gcc.gnu.org/onlinedocs/gcc/Return-Address.html__builtin_frame_address 这样也许能抓ok 上面是正确解答 我回一篇给你http://tinyurl.com/kk3etza mac跑是对的 centos跑是错的,看起来这不是通解.... 伤脑筋
作者: h520 (恩哈恩哈恩哈哈)   2014-06-18 17:02:00
calling 两个(动)名词放一起 前面那个会隐式转型当adj来用
作者: LPH66 (-6.2598534e+18f)   2014-06-18 18:19:00
隐式转型 XDDD
作者: lc85301 (pomelocandy)   2014-06-19 10:43:00
干嘛跟自己过不去XDD
作者: michael0728n (蒜˙远古)   2014-06-19 18:16:00
看完讨论怎么感觉一个一个手动改变量工程可能小些XD

Links booklink

Contact Us: admin [ a t ] ucptt.com