реклама на сайте
подробности

 
 
> Возврат значения char */char const *
jcxz
сообщение May 10 2017, 10:28
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Имеется функция:
char *StrFunc(char const *str) {}
Внутри она использует str именно как char const * (только чтение) и потом возвращает например: str+N (N - типа int).
Но в качестве вх. аргумента в неё могут передаваться как char * так и char const * - нет проблем, приведение типа делается автоматом.
Но хочется, чтобы и возвращаемое значение было того же типа, что и передано: для char * - char *, для char const * - char const *.
Чтобы не было необходимости делать: char const *s; ... ; s = (char const *)StrFunc(s);
Понятно, что можно объявить inline функцию, в которой сделать приведение к нужному типу. Но тогда, с низким уровнем оптимизации, функция не будет заинлайнена.
Или можно перегрузить эту функцию с другим типом аргумента/возвращаемого значения - опят будут две функции, выполняющие одно действие.
Может есть более элегантное решение?
Как бы так объявить алиас для данной функции с другим типом аргумента/возвращаемого значения?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   Возврат значения char */char const *   May 10 2017, 10:28
- - scifi   Цитата(jcxz @ May 10 2017, 13:28) Имеется...   May 10 2017, 10:38
|- - jcxz   Цитата(scifi @ May 10 2017, 12:38) Причём...   May 10 2017, 11:52
|- - novikovfb   Цитата(jcxz @ May 10 2017, 15:52) Вот есл...   May 10 2017, 11:56
||- - k155la3   Цитата(novikovfb @ May 10 2017, 14:56) ша...   May 10 2017, 14:37
|- - scifi   Цитата(jcxz @ May 10 2017, 14:52) Плохое ...   May 10 2017, 12:19
||- - jcxz   Цитата(scifi @ May 10 2017, 14:19) Как жи...   May 10 2017, 12:41
|- - Сергей Борщ   QUOTE (jcxz @ May 10 2017, 14:52) А как ж...   May 10 2017, 14:14
- - Сергей Борщ   QUOTE (jcxz @ May 10 2017, 13:28) Понятно...   May 10 2017, 11:41
- - Шаманъ   Цитата(jcxz @ May 10 2017, 13:28) Имеется...   May 10 2017, 18:25
- - esaulenka   Что-то не понял, почему нельзя возвращать указател...   May 11 2017, 11:36
|- - demiurg_spb   https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gc...r-Bu...   May 11 2017, 14:37
|- - jcxz   Цитата(esaulenka @ May 11 2017, 13:36) Чт...   May 17 2017, 07:09
|- - Сергей Борщ   QUOTE (jcxz @ May 17 2017, 10:09) Во-перв...   May 17 2017, 11:09
|- - jcxz   Цитата(Сергей Борщ @ May 17 2017, 13:09) ...   May 17 2017, 11:21
|- - scifi   Цитата(jcxz @ May 17 2017, 14:21) Ничего ...   May 17 2017, 11:26
- - krux   А вариант с union вам не подойдет ?   May 17 2017, 09:44
|- - jcxz   Цитата(krux @ May 17 2017, 11:44) А вариа...   May 17 2017, 10:25
- - Arlleex   Под рукой нет компилятора, но, на мой взгляд, было...   Jan 11 2018, 19:48
- - jcxz   Цитата(Arlleex @ Jan 11 2018, 21:48) Под ...   Jan 11 2018, 21:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016