C语言中的*.r文件是什么?
可能重复:C语言中的*.r文件是什么?,c,class-design,C,Class Design,可能重复: 我指的是这个问题: 对该问题的公认答案贴出了一本书的链接: 在本书中,作者除了使用*.c和*.h文件外,还使用了*.r文件。*.r文件像头文件一样使用,对用户隐藏“C类”的实现 我的问题是什么是*.r文件 它们是C语言编码的标准吗 还是Axel Schreiner在写他的书时想到的东西?我快速浏览了PDF,下面是一个你提到的例子: 中的类型描述结构类 新的.r应与方法相对应 在纽约的声明。h: .r指的是所谓类的表示形式(因此称为.r),其中头文件实际上定义了外观更友好的方法名
我指的是这个问题: 对该问题的公认答案贴出了一本书的链接: 在本书中,作者除了使用*.c和*.h文件外,还使用了*.r文件。*.r文件像头文件一样使用,对用户隐藏“C类”的实现 我的问题是什么是*.r文件 它们是C语言编码的标准吗
还是Axel Schreiner在写他的书时想到的东西?我快速浏览了PDF,下面是一个你提到的例子: 中的类型描述结构类 新的.r应与方法相对应 在纽约的声明。h:
.r
指的是所谓类的表示形式(因此称为.r
),其中头文件实际上定义了外观更友好的方法名称:
void * new (const void * class, ...);
void delete (void * item);
void draw (const void * self);
最后,c源文件包含实际的功能代码:
void draw (const void * self)
{
const struct Class * const * cp = self;
assert(self && * cp && (* cp) —> draw);
(* cp) —> draw(self);
}
长话短说,是的,
.r
是阿克塞尔·施雷纳(Axel Schreiner)在他的书中提出的,正如.r
中提到的,r是“表征” 他称它们为*r*e表示文件,因此扩展名为.r
。它也可以是.p
或.q
。这只是作者使用的个人约定。这绝对不是普通的C文件扩展名。这可能会为您提供答案:
void draw (const void * self)
{
const struct Class * const * cp = self;
assert(self && * cp && (* cp) —> draw);
(* cp) —> draw(self);
}