Перейти к содержанию
    

Выдать из функции указатель на ее статическую переменную

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

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

Нужно было работать с другой локальной (регистровой) переменной, а результат скидывать в статическую.

Пока ушел на внешнюю глобальную переменную. Она в своем файле хранится, так что не настолько уж и "глобальная" (правда, для этого статической ее нужно квалифицировать).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

bool или нет, но

unsigned char str2int32(int32_t *result, char *s); // returns 0 if error or  number of symbols handled
//....usage
int32_t a,b,c,d;
char source[]="123, 7689540";
char s2[]="123,7689540";

if(str2int32(&a,source)&&str2int32(&b,&source[5])
{
  c = a+b;
}

if(str2int32(&a,&s2[str2int32(&b,s2)]))
{
  d = a+b;
}

assert(c==d);

каждый д*чит как х*чет.

там есть момент, где игнорировать символы, слева или справа, но это уже религиозный :)

Изменено пользователем _Pasha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...