首页
社区
课程
招聘
如何在编译期间获取函数体代码大小[求助]
发表于: 2006-5-12 07:38 5525

如何在编译期间获取函数体代码大小[求助]

2006-5-12 07:38
5525
第一个问题:
void fn(void)
{
.......
}

如何在编译期间获取fn函数体内的代码长度(机器码字节数)?

第二个问题:
void fn(void)
{
lab_start:
.....
lab_end:
....
}
如何在编译期间获取lab_start与lab_end之间的代码长度(机器码字节数)?
谢谢~~~~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
忘了说编译器了,VC或BCB都可以,他们能否实现我的目的?
2006-5-12 09:29
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
不能,编译期间不可能获得函数体大小
2006-5-12 10:14
0
雪    币: 12
活跃值: (605)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
编译时不能,运行时可以
2006-5-12 12:07
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
void foo()
{
  //do some things....
}
void foo_end()
{}

UINT unNumofRawCode = (UINT)foo_end-(UINT)foo;

大概这个意思....
2006-5-12 13:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
__asm{
jmp lab  //注意这条指令
.....
lab:
nop
}
既然编译期间能够确定jmp指令的偏移值,为什么不能确定两个lab之间的代码体大小呢?
2006-5-13 03:51
0
游客
登录 | 注册 方可回帖
返回
//