sizeof((int[]){1,2,3})
是否在编译时评估?并且有标准保证。我问这个问题是因为使用任务编译器这一行会导致警告“'sizeof'操作数的副作用被忽略”。
我想知道这是否是一个虚假的警告或者有什么问题。
我试图遵守 MISRA 规则 13.6,该规则规定“sizeof() 运算符的操作数不应包含任何具有潜在副作用的表达式”。
这里没有副作用。
仅当类型为可变长度数组时,才会计算
sizeof
运算符的操作数。 您给出的复合文字是一个固定大小的数组,因此不会在运行时对其进行求值。