Имеет ли каждое выражение в C значение? Как насчет вызова функции с void в результате? [дубликат]

0

Вопрос

Как и положено.

void foo() {}
int main(void) {
  foo();  // what is the value of this expression?
}

Означает ли это, что void также является типом значения в C? Или как я должен это понимать?

c
2021-11-24 03:26:57
2

Лучший ответ

1

Выражение void не имеет значения и фактически не может быть использовано. Это подробно описано в разделе 6.3.2.2 стандарта C:

(Несуществующее) значение выражения void (выражение, имеющее тип void) не должны использоваться каким-либо образом, а также неявные или явные преобразования (за исключением void) не должно применяться к такому выражению. Если выражение любого другого типа оценивается как пустое выражение, его значение или обозначение отбрасывается. ( Выражение void оценивается на предмет его побочных эффектов.)

2021-11-24 03:40:26
-1

Ну, и да, и нет. Нет, void-это тип, который не имеет значения. Как и следует из названия, это означает отсутствие типа в выражении. Но да, потому что представление отсутствия типа подразумевает, что он имеет значение. И это значение состоит в том, чтобы просто ничего не представлять на языке, который требует способности различать различные типы данных.

2021-11-24 03:41:15

Вы имеете в виду, что утверждение "каждое выражение в C имеет значение" верно?
Becavalier

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................