为什么用两个参数调用sizeof运算符?

Dav*_*ron 13 c sizeof

我最近遇到了一些看起来像的代码:

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

Dav*_*ron 9

在进一步的研究中,我发现这是WindRiver Diab编译器特有的行为.有关详细信息,请参阅问题中的编辑.