我最近遇到了一些看起来像的代码:
if(sizeof(var,2) == 4) { ... }
Run Code Online (Sandbox Code Playgroud)
(哪里var
是一种类型)
我很惊讶地发现看起来似乎是sizeof
运营商的两个论点.快速扫描ISO/ANSI C99标准并没有产生任何秘密.我无法想出任何允许在那里使用逗号的语法.
在搜索Google Code时,我能够在某些PPC代码中找到此语法的示例.
这是一些特定于PPC的语法吗?这是什么意思?
编辑:事实证明,我所看到的 - 以及链接代码 - 都是WindRiver Diab编译器特有的语法:
sizeof(type,int-const):
如果int-const为0,则sizeof返回类型的字节大小.
如果int-const为1 sizeof,则返回类型的对齐方式.
如果int-const为2 sizeof,则返回一个指定类型类型的整数常量.在Diab C/C++用户指南中查找"sizeof operator" 了解值.
哇,他们真的超载了sizeof
运营商的意义.
编辑2:完整文档在这里:http://www.vxdev.com/docs/vx55man/diab5.0ppc/c-additi.htm#3001432