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

if(sizeof(var,2) == 4) { ... }

(其中var是一种类型)

我很惊讶地看到sizeof运算符有两个参数。快速扫描ISO/ANSI C99标准不会产生任何 secret 。我无法阅读任何允许在其中使用逗号的语法。

通过搜索Google代码,我能够在某些PPC代码中找到这种语法的an example

这是某些特定于PPC的语法吗?这是什么意思?

编辑:事实证明,我正在查看的内容以及链接的代码都是WindRiver Diab compiler的特定语法:



哇,他们真的重载了sizeof运算符的含义。

编辑2:完整文档在这里:http://www.vxdev.com/docs/vx55man/diab5.0ppc/c-additi.htm#3001432

最佳答案

在进一步研究中,我发现这是特定于WindRiver Diab compiler的行为。有关详细信息,请参阅问题中的 EDIT

关于c - 为什么用两个参数调用sizeof运算符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/966034/

10-11 19:19