Так что, если мы посмотрим на грамматике sizeof
в разделе C99 draft standard6.5.3
унарными пункт это выглядит следующим образом:
sizeof unary-expression
sizeof (type-name)
Существует разница, которую вы не можете использовать тип- наименование без скобок и раздела 6.5.3.4
Оператор размера п. говорит (акцент m ине):
Оператор SizeOf дает размер (в байтах) своего операнда, который может быть выражением или в скобках имя типа [...]
.
Для полноты вы можете задаться вопросом, можем ли мы использовать sizeof
с выражением, если у нас есть круглые скобки, и ответ да, так как унарное выражение может содержать в себе скобки. Самый простой способ увидеть это будет выглядеть раздел A.2.1
Выражения из проекта стандарта и работы по грамматике, как так:
unary-expression -> postfix-expression -> primary-expression -> (expression)
Я мог ошибаться, но считаю, что sizeof (expr) совпадает с sizeof expr. Без сомнения, кто-то меня исправит, если я ошибаюсь! –
Вы писали: «Ха-ха, это смешно, вы спрашиваете нас, что вы думаете, делая это xD». Не удивляйтесь, что он не отвечает вам правильно после этого ... –
Релевантно: [Почему sizeof считается оператором?] (Http://stackoverflow.com/questions/1393582/why-is-sizeof-considered -по ан-оператор/1393592) –