Какая польза от создания возвращаемого типа функции C как const? - PullRequest
0 голосов
/ 18 мая 2018

Мне нужно знать преимущества, которые имеет программист, сделав тип возвращаемого значения функции как const, квалифицированный в C. Этот вопрос не относится к C ++.

Следующая подпись функции является действительной сигнатурой функции Cтаким образом, создатели позволили ему иметь в виду некоторые варианты использования, которые я нигде не могу найти в сети.

const int foo(int arg);

Я знаю, что в C ++ он имеет много применений, чтобы сделать возвращаемые объекты неизменяемыми или доступными только для чтения, потому чтомогут быть случайные присваивания возвращенному объекту.

Пожалуйста, предоставьте мне подробный ответ или ссылку на хорошую страницу, описывающую его.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Рассмотрим следующий случай:

const char* F() {
    return " aaaaaaaaa. Ddddd";
}
0 голосов
/ 18 мая 2018

const не имеет смысла для возвращаемых значений, потому что возвращаемые значения rvalues ​​ в любом случае и не могут быть изменены.

Src .


Исключение: const T* может быть полезным, поскольку в нем упоминается, что это постоянный указатель, и пользователь функции должен это учитывать.

...