【问题标题】:What does 'REF' mean in glibc vfprintf.c?glibc vfprintf.c 中的“REF”是什么意思?
【发布时间】:2011-11-23 05:18:37
【问题描述】:

我对 c++/linux 相当(非常)陌生,并且正在研究 glibc 中的 vfprintf 函数。它包括 REF (...) 的许多用途,我假设它是一个宏,但我在任何地方都找不到它的定义。我已经搜索了文件本身以及所有包含的文件。

它是一个宏吗?如果是,它的定义在哪里?还有没有比逐个搜索所有包含的文件更好的方法来查找宏的定义?

【问题讨论】:

  • gcc可以输出带有适当参数的中间处理结果。当我想知道标识符的声明位置或每个宏的定义位置和方式时,我总是使用g++ -E -dD sourcefile.cpp。这将给出所有宏定义的预处理结果。但是,#if 忽略的代码不会出现。其他会影响预处理的参数应该像编译命令一样添加,如-I,以产生正确的结果。 man gcc 将提供更多信息。
  • @fefe,应该是一个答案,值得 +1 :)

标签: c++ glibc


【解决方案1】:

stdio-common/vfprintf.c:

#ifdef SHARED
# define REF(Name) &&do_##Name - &&do_form_unknown
#else
# define REF(Name) &&do_##Name
#endif

我是通过ctags(1)找到的; ctags -R . ; vim -t REF.

【讨论】:

  • 太棒了!回答所有三个问题:-)
  • 谢谢大家,我正在搜索“#define REF”
猜你喜欢
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-21
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2011-08-12
相关资源
最近更新 更多