это должно быть так же естественно, как дышать - скопировал строку, добавил ноль в конце
Пипец!!!
Ну напиши как на Си (без plus plus):
struct a {
int b;
float c;
}
void clear_a (struct a &pt) {
pt.b = 0;
pt.c = 0.0;
}
Что мешает так сделать???
Обьясните на пальцах плиз
чем
uint8_t kod=0;
uint8_t nn=0;
uint8_t oldnn=0;
uint8_t pages=0;
uint8_t oldpages=0;
uint8_t stat=0;
uint8_t buff_alf=0;
uint16_t XX=0;
uint16_t YY=0;
uint16_t XXOLD=0;
uint16_t YYOLD=0;
char text_buf[0]='\0';
char oldtextbuf[0]='\0';
лучше , чем
memset(&my_touch,0x00,sizeof(my_touch));
?
динамические поля не использую … и вызывается в разных местах…
незнание Спасибо , сейчас попробую разобраться…
Почитай:
Он прынципиально пишет на “честном”. А там нету методов
Это как?
Ссылков в “честном” тоже нет, если чё
Ой, да ладно! А автор прям “Воин Света”
(а может, автора и вправду “Света” зовут? тогда извиняюсь )
Решил таки почитать, что ж там такого тёмного он нашёл, после отпишусь. Хотя, после первой фразы:
В языке Си повсеместно используется memset(), таящий в себе множество ловушек. Выдержка из C++ Reference
не уверен, что смогу дочитать до конца.
Это какого же он («честный») года? В stm32cubeide ссылки есть, я поэтому так и написал.
Да и как ТС тогда в memset объект передает?
memset(&my_touch,0x00,sizeof(my_touch));
Видимо пишет не на совсем «честном» )))
А нужно ли?
23-го – ISO/IEC 9899:2024
Не уверен.
Так Вы ссылки с указателями путаете. Тогда понятно, что в stm32cubeide есть.
А разве
void my_clear(void){
uint8_t kod=0;
uint8_t nn=0;
uint8_t oldnn=0;
uint8_t pages=0;
uint8_t oldpages=0;
uint8_t stat=0;
uint8_t buff_alf=0;
uint16_t XX=0;
uint16_t YY=0;
uint16_t XXOLD=0;
uint16_t YYOLD=0;
char text_buf[0]='\0';
char oldtextbuf[0]='\0';
}
…
my_clear();
не тоже самое ? смысл то был избавиться от обнуления ручками каждой переменной
или я неправильно понял ?
я вроде грабли у мемсет проверил если компилятор не менять вроде ни на что не наткнусь . и да, я ее не только здесь использую
void clear_a (struct a &pt) в последней версии не работает
ну, да, ну, да…
Знаете такую притчу: “Зарекалась свинья дерьмо не есть, идёт, а оно лежит ….”
И не должно, если Вы на Си пишете. Это плюс-плюсовая фича.
Если не сложно , можете указать на что еще обратить внимание? Я активно пользуюсь memset,strcpy,strcmp…
про указатель и sizeof , проверил …
Это ему @karasik_mk1 голову заморочил своим &my_touch
поменяйте ссылку на указатель - заработает
Сложно, реально сложно. Там граблей много – минное поле. Причём на некоторые и не подумаешь, что человек может так ошибиться.
понял… спасибо …
Зато надёжно и предсказуемо. Тут вон страсти какие пишут, без бутылки не разобраться. А косяки неуловимые исправлять потом, так ваще спиться можно.