ViKo 1 6 декабря, 2014 Опубликовано 6 декабря, 2014 · Жалоба В чем ее отличие от статической внутри функции? Кроме того, что ее кто угодно поломать может и ему за это ничего не будет. Если функция возвращает указатель на свою статическую переменную как указатель на константу, то компилятор хоть по рукам даст при попытке эту переменную изменить извне. Я по дурости работал внутри функции непосредственно со статической переменной. При входе в программу в следующий раз предыдущее содержимое переменной не стирал. Естественно, результат просто накапливался. Нужно было работать с другой локальной (регистровой) переменной, а результат скидывать в статическую. Пока ушел на внешнюю глобальную переменную. Она в своем файле хранится, так что не настолько уж и "глобальная" (правда, для этого статической ее нужно квалифицировать). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 6 декабря, 2014 Опубликовано 6 декабря, 2014 (изменено) · Жалоба 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); каждый д*чит как х*чет. там есть момент, где игнорировать символы, слева или справа, но это уже религиозный :) Изменено 6 декабря, 2014 пользователем _Pasha Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться