阅读TeXmacs的代码时,我看到了以下内容:
struct texmacs_input_rep : concrete_struct {
...
};那是什么意思?
这种语法是在p113的C standard中定义的,但是我没有找到它的含义,但那是因为我不知道如何阅读语法规则。
因为concrete_struct是另一个struct,它包含看起来像构造函数和虚拟析构函数的函数,并且因为我在其他地方读到C++中的类实际上是缺省情况下具有公共成员的struct,所以我猜这是C中使用struct进行继承的方式(因为它是C标准...)。
这是正确的吗?
发布于 2009-11-03 18:57:05
GCC不喜欢它(当然是在C模式下)。
看一下规范,我没有看到第113页(6.7.2.1)中定义的规范,它说:
struct-declarator:
declarator
declarator_opt : constant-expression以下是位字段的语法:
struct blah {
int a : 4;
int b : 4;
};总而言之:这不是C,而是C++,它和类继承一样是继承。
发布于 2009-11-03 18:50:33
你确定这是C吗?
你链接到的标准文档没有描述这样的语法,我可以看到。
这看起来像C++,实际上是用来表示该结构继承了另一个结构。TeXmacs compilation page建议您使用C++编译器,这(对我来说)意味着它是用C++编写的,而不是C。
我快速浏览了一下TeXmacs源代码存档,发现了很多".cpp“文件。
发布于 2009-11-03 18:57:09
标准文本中的:不是C结构的一部分。它的存在是为了将被定义的事物和它的定义分开。
在结构声明中没有有效的:用法。
https://stackoverflow.com/questions/1666580
复制相似问题