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

 
 
> Выдать из функции указатель на ее статическую переменную
ViKo
сообщение Dec 5 2014, 10:26
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В функции преобразую строку в число, и хочу выдать указатель на это число, если оно получилось из строки, и NULL, если в строке галимотня.
Можно определить глобальную int32_t переменную, в которую преобразовывать строку, и выдавать указатель на нее. Не нравится, что переменная глобальная.
Могу ли создать статическую переменную внутри функции, и выдавать указатель на нее?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Dec 5 2014, 15:25
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я же указатель возвращаю, не сам объект. И указатель может быть NULL, в случае ошибки. Мне так удобно.
Вы правы! Я уже с этим статиком накололся. Не сбросил число от предыдущей обработки, увеличил прошлое.
От "бреда" избавился. Работает глобальная переменная, как надо. Может, если статическую переменную каждый раз инициализировать при вызове функции, и сгодилось бы. Но красоты в этом я уже не вижу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 5 2014, 18:25
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ViKo @ Dec 5 2014, 17:25) *
Работает глобальная переменная, как надо.
В чем ее отличие от статической внутри функции? Кроме того, что ее кто угодно поломать может и ему за это ничего не будет. Если функция возвращает указатель на свою статическую переменную как указатель на константу, то компилятор хоть по рукам даст при попытке эту переменную изменить извне.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ViKo   Выдать из функции указатель на ее статическую переменную   Dec 5 2014, 10:26
- - Mc_off   При вызове функции передавайте туда указатель на в...   Dec 5 2014, 10:35
- - ViKo   Если переменная внутри функции не статическая, то ...   Dec 5 2014, 10:39
|- - adnega   Цитата(ViKo @ Dec 5 2014, 14:39) Если пер...   Dec 5 2014, 10:48
- - _pv   да можно конечно, только вот зачем? использовать ...   Dec 5 2014, 10:45
|- - ViKo   Цитата(_pv @ Dec 5 2014, 13:45) да можно ...   Dec 5 2014, 10:54
|- - SM   Цитата(ViKo @ Dec 5 2014, 13:54) А что мн...   Dec 5 2014, 11:09
- - AlexandrY   Цитата(ViKo @ Dec 5 2014, 12:26) В функци...   Dec 5 2014, 11:19
- - CrimsonPig   Цитата(ViKo @ Dec 5 2014, 10:26) В функци...   Dec 5 2014, 11:20
- - ViKo   Вижу, вариантов много. Но не вижу лучшего.   Dec 5 2014, 11:31
|- - SM   Цитата(ViKo @ Dec 5 2014, 14:31) Вижу, ва...   Dec 5 2014, 11:33
||- - ViKo   Цитата(SM @ Dec 5 2014, 14:33) Сделайте к...   Dec 5 2014, 12:11
||- - SM   Цитата(ViKo @ Dec 5 2014, 15:11) Функция ...   Dec 5 2014, 12:18
||- - AlexandrY   Цитата(SM @ Dec 5 2014, 14:18) Так тогда ...   Dec 5 2014, 12:30
|||- - SM   Цитата(AlexandrY @ Dec 5 2014, 15:30) str...   Dec 5 2014, 12:34
|||- - ViKo   Цитата(AlexandrY @ Dec 5 2014, 15:30) Но ...   Dec 5 2014, 12:34
||- - ViKo   Цитата(SM @ Dec 5 2014, 15:18) Так тогда ...   Dec 5 2014, 12:33
||- - SM   Цитата(ViKo @ Dec 5 2014, 15:33) Правильн...   Dec 5 2014, 12:38
||- - ViKo   Цитата(SM @ Dec 5 2014, 15:38) Теоретичес...   Dec 5 2014, 12:40
||- - SM   Цитата(ViKo @ Dec 5 2014, 15:40) Ок! ...   Dec 5 2014, 12:42
||- - ViKo   Цитата(SM @ Dec 5 2014, 15:42) Только не ...   Dec 5 2014, 12:46
|||- - SM   Цитата(ViKo @ Dec 5 2014, 15:46) Разбор с...   Dec 5 2014, 12:48
||- - ViKo   Кстати, как это слово правильно использовать, пере...   Dec 5 2014, 12:51
||- - SM   Цитата(ViKo @ Dec 5 2014, 15:51) Кстати, ...   Dec 5 2014, 13:19
||- - ViKo   Цитата(SM @ Dec 5 2014, 16:19) Поток, это...   Dec 5 2014, 13:23
|- - CrimsonPig   Цитата(ViKo @ Dec 5 2014, 11:31) Вижу, ва...   Dec 5 2014, 11:38
- - dxp   Возвращать результат из функции, храня его во внут...   Dec 5 2014, 15:23
|- - ViKo   Цитата(Сергей Борщ @ Dec 5 2014, 21:25) В...   Dec 6 2014, 12:24
- - Slash   Указатель на переменную успеха/неудачи передавать ...   Dec 5 2014, 19:16
- - _Pasha   bool или нет, но Кодunsigned char str2int32(in...   Dec 6 2014, 16:08


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

 


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


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