金牌会员
 
- 积分
- 1181
- 金钱
- 1181
- 注册时间
- 2018-4-13
- 在线时间
- 170 小时
|
5金钱
最近有空就看看usmart这个工具,对于接收到的字符串数据进行解析,分析出函数名和参数的代码不甚了了。
具体函数是usmart_get_fname(),可能原子希望工具适用于所有形式的函数,所以出现的一些我看不懂的代码,因为我个人对C也不是很了解,不能接触到常用类型之外的函数。
比如分析函数名的代码分析了可能会有'(' ')'嵌套的情况,我遇到的在函数名中有()的情况就是函数指针了,形如(*pFunc)()。
实在复杂,我想改写这个工具,让它只适用于通常的函数形式:
void func()
void* func()
type func(int a, ...)
type* func(int a,...)
type * func(int a, ...)
type *func(int a, ...)
参数也只有通常的形式,一层(),没有嵌套,太复杂的嵌套我觉得我还没有掌握,更别提写解析了。
当然,通常的参数形式还是要有的:
(void)
(type a,...)
(type* a,...)
(type * a,...)
(type *a, ...)
(type a, "fooo", ...) //常量1
(type a, 49, ...) //常量2
对于函数指针作参数的形式暂时没想法。
(type a, (*pFun)(typeb,...), ...)
不知道我对usmart_get_fname函数的认识是不是出现的误差?
|
|