我正在翻阅一家名为OVP(类似于qemu的产品)的公司提供的“处理器建模指南”。其中有一段类似于以下内容的代码片段:
static or1kDispatchTableC dispatchTable = {
// handle arithmetic instructions
[OR1K_IT_ADDI] = disDefault,
[OR1K_IT_ADDIC] = disDefault,
[OR1K_IT_ANDI] = disDefault,
[OR1K_IT_ORI] = disDefault,
[OR1K_IT_XORI] = disDefault,
[OR1K_IT_MULI] = disDefault
};
我以前从未见过这样的语法。 删除了与 C++ 无关的内容
目前我没有能力下载/查看他们的东西来查看任何东西是如何定义的,因此我的问题。如果你认识这种语法,你能权衡一下吗?
编辑
or1kDispatchTableC
是 or1kDispatchTableCP
类型指针的 typedef , 但我仍然没有任何关于 or1kDispatchTableCP
的信息是。
最佳答案
好吧,假设你的第一行是一个错字,或者 or1kDispatchTableC
是一个数组类型,那么这实际上是一个数组声明,这看起来像一个 C11 显式初始化的数组。线路
[OR1K_IT_ADDI] = disDefault,
将元素 OR1K_IT_ADDI
初始化为 disDefault
。这两个都需要是常量表达式——OR1K_IT_ADDI
可能是一个 #define 或一个枚举标记。
我很确定 C++11 不支持这种语法,尽管一些编译器(也支持 C11)可能支持它作为扩展。
从名字看,我猜这实际上是一个函数指针数组。
关于c - 初始化数组/结构的不熟悉语法,寻找解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729343/