现在的位置: 首页 > 综合 > 正文

ACE杂记——ACE_RCSID(path,file,id)

2013年11月06日 ⁄ 综合 ⁄ 共 1023字 ⁄ 字号 评论关闭
看ACE自带的例子时发现好多例子的开头都有ACE_RCSID这个函数,不知道是干什么的,网上也搜不到,后来在源代码中找到了 如下注释:
#if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0))
#  if ! defined (ACE_RCSID)

   // This hack has the following purposes:
   // 1. To define the RCS id string variable as a static char*, so
   //    that there won't be any duplicate extern symbols at link
   //    time.
   // 2. To have a RCS id string variable with a unique name for each
   //    file.
   // 3. To avoid warnings of the type "variable declared and never
   //    used".

#    define ACE_RCSID(path, file, id) /
      static inline const char* get_rcsid_ ## path ## _ ## file (const char*) /
      { /
        return id ; /
      } /
      static const char* rcsid_ ## path ## _ ## file = /
        get_rcsid_ ## path ## _ ## file ( rcsid_ ## path ## _ ## file ) ;

#  endif /* #if ! defined (ACE_RCSID) */
#else

   // RCS id strings are not wanted.
#  if defined (ACE_RCSID)
#    undef ACE_RCSID
#  endif /* #if defined (ACE_RCSID) */
#  define ACE_RCSID(path, file, id) /* noop */
#endif /* #if (defined (ACE_USE_RCSID) && (ACE_USE_RCSID != 0)) */

根据程序和英文注释,他的用处是根据你输入的三个参数生成一个唯一的ID。他的作用有三点(翻译的不是很准确,原文是上面的蓝字):1。避免外部引用冲突;2。为每个文件起一个独一无二的名字;3。避免编译器保“ariable declared and never  used"的警告 。

【上篇】
【下篇】

抱歉!评论已关闭.