什么' ap'代表C的例子?

时间:2014-06-21 19:37:48

标签: c coding-style

例如,在参考文献中:

type va_arg (va_list ap, type)

ap代表参数指针吗?还有别的吗?

3 个答案:

答案 0 :(得分:6)

这实际上是一个容易回答的问题。

ap代表参数指针

来自The C Programming Language,第二版,Brian W. Kernighan和Dennis M. Ritchie:

  

7.3可变长度参数列表

     

[...]类型va_list用于声明一个将依次引用每个参数的变量;在minprintf中,对于“参数指针”

,此变量称为ap

答案 1 :(得分:4)

ap代表 Argument Pointer 。事实上,它是sometimes abbreviated as arg_ptr

type va_arg(
   va_list arg_ptr,
   type 
);
  
      
  • type - 要检索的参数类型。
  •   
  • arg_ptr - 指向参数列表的指针。
  •   

答案 2 :(得分:2)

这实际上是一个难以回答的问题。

ouah's answer; K& R2中提到了短语“参数指针”。

{C}标准在1989年引入了<stdarg.h>标头。ANSI C Rationale没有显示任何示例,也没有使用名称ap或{{1} }。标准本身(最新草稿here在示例中使用名称arg_ptr,但不解释它。

我无法找到名称ap的解释。它最初代表“参数指针”似乎是合理的,但同样重要的是要注意类型ap不是(必然)指针类型。例如,在gcc中,它被定义为va_list,这是一种由编译器直接实现的类型。 (它在我的系统上恰好有24个字节的大小,但这不是特别有用的信息)。

底线:名称__builtin_va_listap对象的常规名称,我们无需特别关注。