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

 
 
> Работа со struct
Jenya7
сообщение Jul 14 2014, 10:13
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть struct:
Код
typedef struct command
{
    char *name;  //command name
    char mode;   //0-read, 1- read/write
    int minval;  
    int maxval;  
    void (*fp) (int com_num);  //pointer to function
    void *vp;   //pointer to variable
}command;

command commands[] = {
    {"imax1", 1, 0, 10000, GetSetImax, &max_current1},
    {"imax2", 1, 0, 10000, GetSetImax, &max_current2},
};

Я могу считать переменную
Код
UsartSendInt( (int)commands[com_num].vp );

Но записать не получается
Код
(int *)(commands[com_num].vp) = mux_cur;

Что я делаю не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение Jul 14 2014, 11:21
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Цитата
у меня переменная может быть разной размерности

В таком случае, если будете писать
Код
*(int *)... = val

рискуете получить падающую программу.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 14 2014, 11:31
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(andrewlekar @ Jul 14 2014, 17:21) *
В таком случае, если будете писать
Код
*(int *)... = val

рискуете получить падающую программу.

ну если переменная скажем чар то я привожу к *(char *). по моему вполне безопасно.

Сообщение отредактировал Jenya7 - Jul 14 2014, 11:32
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Работа со struct   Jul 14 2014, 10:13
- - andrewlekar   Как вам такой вариант: Кодcommands[com_num...   Jul 14 2014, 10:29
|- - Jenya7   Цитата(andrewlekar @ Jul 14 2014, 16:29) ...   Jul 14 2014, 10:39
|- - adnega   попробуйте *(int *)... = val   Jul 14 2014, 10:43
|- - Jenya7   Цитата(adnega @ Jul 14 2014, 16:43) попро...   Jul 14 2014, 10:57
|- - mempfis_   Цитата(Jenya7 @ Jul 14 2014, 13:57) все р...   Jul 14 2014, 11:13
- - andrewlekar   Цитатано я что то не понимаю - мы приводим к войд?...   Jul 14 2014, 10:48
- - andrewlekar   Цитатавсе рвно не понимаю - как он запишет инеджер...   Jul 14 2014, 11:11
|- - Jenya7   Цитата(andrewlekar @ Jul 14 2014, 17:11) ...   Jul 14 2014, 11:19
|- - adnega   Цитата(andrewlekar @ Jul 14 2014, 15:21) ...   Jul 14 2014, 11:40
|- - Jenya7   Цитата(adnega @ Jul 14 2014, 17:40) Поэто...   Jul 14 2014, 11:44
||- - adnega   Цитата(Jenya7 @ Jul 14 2014, 15:44) то ес...   Jul 14 2014, 11:50
|- - Jenya7   Цитата(adnega @ Jul 14 2014, 17:40) С дру...   Jul 14 2014, 11:45
- - andrewlekar   uint32_t vp;   Jul 14 2014, 11:45
- - Jenya7   спасибо всем.   Jul 14 2014, 12:20


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

 


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


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