复合文字数组的大小会产生副作用吗?

问题描述 投票:0回答:1
  1. sizeof((int[]){1,2,3})
    是否在编译时评估?并且有标准保证。
  2. 这种情况下操作数的大小会产生副作用吗?

我问这个问题是因为使用任务编译器这一行会导致警告“'sizeof'操作数的副作用被忽略”。
我想知道这是否是一个虚假的警告或者有什么问题。

我试图遵守 MISRA 规则 13.6,该规则规定“sizeof() 运算符的操作数不应包含任何具有潜在副作用的表达式”。

c misra
1个回答
0
投票

这里没有副作用。

仅当类型为可变长度数组时,才会计算

sizeof
运算符的操作数。 您给出的复合文字是一个固定大小的数组,因此不会在运行时对其进行求值。

© www.soinside.com 2019 - 2024. All rights reserved.