Да, признаю, спешил и не верно функцию описал…
Нужно так:
void clear_a (struct a *pt) {
pt.b = 0;
pt.c = 0.0;
}
А вот передавать в функцию уже по ссылке.
Да, признаю, спешил и не верно функцию описал…
Нужно так:
void clear_a (struct a *pt) {
pt.b = 0;
pt.c = 0.0;
}
А вот передавать в функцию уже по ссылке.
по указателю
Да, совершенно верно!
Но надо будет перечитать ссылки/указатели всё-таки… )
тогда уж
void clear_a (struct a *pt) {
pt->b = 0;
pt->c = 0.0;
}
не совсем пойму (struct a *pt)…
а так?
struct a {
int b;
float c;
}
void clear_a (struct a *pt) {
pt->b = 0;
pt->c = 0.0;
}
а вызывать так
clear_a(a);
Голова другим забита сейчас…
Вот так еще попробуй…))
void clear_a (struct a *pt) {
*pt.b = 0;
*pt.c = 0.0;
}
invalid type argument of unary ‘*’ (have ‘int’)…
первый вариант проходит , но при вызове функции ругается incompatible type for argument 1 of ‘clear_a’
// HAL_Delay(5000);
// }
clear_a(a);
input_sort(profil_f);
//WRITE_EE(0,uint8_t my[1]);
Во, чтобы точка осталась ))
void clear_a (struct a *pt) {
(*pt).b = 0;
(*pt).c = 0.0;
}
Что на что ругается я не понял.
Приведи минимальный код и полное сообщение компилятора.
Вы опять спешите
. Привыкайте пробовать скомпилировать, прежде, чем выкладывать.
Да, прошу прощения.
Голова другим забита, просто пытаюсь (отвлекаясь на форум) немного мысли «очистить»… (
Сорри , вызывать так
clear_a(&a)
Да , так работает … Спасибо…
только я все равно не понял, чем оно лучше , чем
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();
Любую переменную типа “a” (структуры) можно обнулить.
А в твоем коде и структура не фигурирует вообще (обнуляешь локальные переменные функции при их создании, после выхода из функции - они будут уничтожены. То есть бессмысленный код.)…
Э… структура глобальна , раз я ее поля вижу в прерывании . почему при выходе из функции они уничтожаться…?
и самая главная проблема то осталась …![]()
void clear_a (struct a *pt) {
(*pt).b = 0;
(*pt).c = 0.0;
(*pt).d='\0';
};
не как не хочет
struct a {
int b;
float c;
char d[20];
};
сорри
конечно
void my_clear(void){
my_touch. kod=0;
my_touch. kod=0;
my_touch. oldnn=0;
my_touch. pages=0;
my_touch. oldpages=0;
my_touch. stat=0;
my_touch. buff_alf=0;
my_touch. XX=0;
my_touch. YY=0;
my_touch. XXOLD=0;
my_touch. YYOLD=0;
my_touch. text_buf[0]='\0';
my_touch. oldtextbuf[0]='\0';
}
my_clear();
а… пардон я слеп… работает