ruoyisiyu
函数声明中的_符号(已解决)
举个例子,
int func _((char *args));
这个函数声明中的'_'是什么?
[[i] 本帖最后由 ruoyisiyu 于 2008-6-30 14:59 编辑 [/i]]
emacsnw
[quote]原帖由 [i]jigloo2008[/i] 于 2008-6-29 21:44 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8702691&ptid=1184540][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
应该是个宏。类似下面的PARAMS(来自wget)
#ifndef PARAMS
# if PROTOTYPES
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif ... [/quote]
这个应该是正解。
ruoyisiyu
[quote]原帖由 [i]net_robber[/i] 于 2008-6-30 13:59 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8702815&ptid=1184540][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
在代码的其他位置找找,应该有定义
或者用Ctrl+]跳转一下 [/quote]
找到定义了,但是没有_,其它的都相同
ruoyisiyu
[quote]原帖由 [i]emacsnw[/i] 于 2008-6-30 14:21 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8702940&ptid=1184540][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
这个应该是正解。 [/quote]
找到了,谢谢大家
[quote]
#ifndef _
#define _(x) x
else
#define _(x) ()
#endif
#endif
void *bget _((char *buf));//声明
void *bget(char *buf)
{
//do something
}
[/quote]
linternt
[quote]原帖由 [i]xi2008wang[/i] 于 2008-6-30 13:58 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8702811&ptid=1184540][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
这个贴子讲地很详细
[url]http://bbs.chinaunix.net/viewthread.php?tid=1047250&extra=&page=1[/url] [/quote]
这个贴子里说的清楚了,我贴过来,楼主参考吧
///////////////////////////////////////////////////////////////////////////
找到了,在unicode.c里面有如下定义:
[Copy to clipboard] [ - ]CODE:
#define _(msgid) gettext (msgid)
之后,在gettext.h中还有:
[Copy to clipboard] [ - ]CODE:
# define gettext(Msgid) ((const char *) (Msgid))
多谢上面各位的指导。
//////////////////////////////////////////////////////////////////////////