函数声明中的_符号(已解决)

ruoyisiyu
函数声明中的_符号(已解决)

举个例子,
int func _((char *args));
这个函数声明中的'_'是什么?

[[i] 本帖最后由 ruoyisiyu 于 2008-6-30 14:59 编辑 [/i]]

Godbach
偶也不知道,友情帮顶。

scutan
我在gcc下编译通不过呢.

jigloo2008
应该是个宏。类似下面的PARAMS(来自wget)

[code]
  #ifndef   PARAMS  
  #   if   PROTOTYPES  
  #     define   PARAMS(args)   args  
  #   else  
  #     define   PARAMS(args)   ()  
  #   endif  
  #endif   
[/code]

对付不同的编译器用的。

xi2008wang
这个贴子讲地很详细
[url]http://bbs.chinaunix.net/viewthread.php?tid=1047250&extra=&page=1[/url]

net_robber
在代码的其他位置找找,应该有定义

或者用Ctrl+]跳转一下

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]Godbach[/i] 于 2008-6-30 13:35 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8702597&ptid=1184540][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
偶也不知道,友情帮顶。 [/quote]
谢谢兄台:em17:

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]
没找到那个宏
BTW:一会上函数原型,谢谢关注

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))
多谢上面各位的指导。
//////////////////////////////////////////////////////////////////////////

jigloo2008
gettext里面的_和这儿的_不一样吧。

[[i] 本帖最后由 jigloo2008 于 2008-6-30 15:07 编辑 [/i]]