![]() |
1
9
在进一步的研究中,我发现这是特定于 WindRiver Diab compiler . 请看 编辑 关于细节的问题。 |
![]() |
2
3
在我看来,它是 comma operator 它计算第一个参数,丢弃结果,然后计算第二个参数。
在这种情况下,它决定
|
![]() |
3
1
看起来像一条红鲱鱼。我猜您不小心使用了逗号运算符,sizeof正在应用于最后一个值。 |
![]() |
4
0
如前所述,正在应用逗号运算符,size of返回整型文本的大小。这看起来像是作者的一个错误,但可能会有一些邪恶的编码发生。 不计算sizeof表达式,因此它们可以用于许多棘手的事情。一个例子是在不导致编译器生成任何代码的情况下为其他未引用的变量提供引用。见 this article 关于为示例创建更好的断言宏。如果内存服务的话,Alexandrescu在现代C++设计中还有一些其他的诡计。有可能,但不可能,这些不明显的用法之一是有意的。 不管它的用法是什么,如果它在这种情况下没有被评论,那么它显然不值得在可读性方面进行权衡,应该进行更改。 |
![]() |
5
0
重要免责声明:下面的代码是伪代码。这个 实际上从未计算sizeof的参数 “已执行”的意思是,它始终是编译时构造(因此也是模板作者首选的工具之一,如枚举)。
注意我借了
很多人不知道的是你可以调用
也就是说,不需要括号。因此,如果将(x,y)传递给
或者只是
所以在我看来,有问题的编译器确实做了一些非常,非常愚蠢的事情,因为它引入了一个扩展,也可以在其他编译器上编译,但有着完全不同的含义。这很糟糕。 |
![]() |
Rajesh · 添加偏移量时数组名称上的sizeof运算符 7 年前 |
![]() |
fatdragon · 结构具有并集时的意外大小 7 年前 |
![]() |
razorozx · C++如何获取父数据类型的sizeof? 7 年前 |
![]() |
WonFeiHong · 通过sizeof会发生什么 7 年前 |
![]() |
Sato · 如何使gcc警告未定义的结构? 7 年前 |
![]() |
msc · C和C中sizeof算子的不同输出++ 7 年前 |
![]() |
Raul GrigoraÈcu · 指向数组最后一个元素的C指针 7 年前 |