我最近遇到了一些看起来像这样的代码:
if(sizeof(var,2) == 4) { ... }
(var
类型在哪里)
我很惊讶地看到操作员似乎有两个参数sizeof
。快速浏览 ISO/ANSI C99 标准并没有发现任何秘密。我无法想出任何允许逗号的语法阅读。
搜索 Google 代码,我能够在一些 PPC 代码中找到这种语法的示例。
这是一些 PPC 特定的语法吗?这是什么意思?
编辑:事实证明,我正在查看的内容以及链接代码都是WindRiver Diab 编译器特有的语法:
sizeof(类型,int-const):
如果 int-const 为 0 ,则sizeof返回类型的字节大小。
如果 int-const 为 1 sizeof返回类型的对齐方式。
如果 int-const 为 2,则sizeof返回一个整数常量,指定类型的类型。在Diab C/C++ 用户指南中查找“sizeof 运算符”以 获取值。
哇,他们真的超载了sizeof
运算符的含义。
EDIT2:完整的文档在这里:http ://www.vxdev.com/docs/vx55man/diab5.0ppc/c-additi.htm#3001432