0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 51
|
|
1 | |
Структура как писать.02.08.2015, 17:38. Показов 3036. Ответов 4
Метки нет Все метки)
(
Всех приветствую. Что то делаю не так, или не понимаю.
Начал изучать как писать структуру, и затык. Как объявить и присвоить знаю, а с инициализацией проблемы. Точнее в главной функции main() она инициализируется, а в цикле while() расположенный внутри функции нет. Что я делаю не правильно? Всем заранее благодарен. Код
// псевдо код #include <Tiny13.h> char data { char a; char b; char c[3]; } rabota; void main (void) { rabota={1;2;"WW"};// так все работает while(1) { // если инициализирую здесь, без инициализации // в main(void) то не работает rabota={1;2;"WW"};// так не работает rabota.a=20; // а присвоить могу } }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
02.08.2015, 17:38 | |
Ответы с готовыми решениями:
4
Структура современной связи как структура системы власти - как структура государственного управления Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше? Я не прошу писать мне код, я прошу подсказать мне, что за структура требуется в задании Что значит "Писать как все" или "Писать правильно на WPF"? |
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 186
|
|
02.08.2015, 19:35 | 2 |
А как вы понимаете, что работает?
Вообще странно, что у вас хоть что-то работает, ибо вы не правильно определяете тип данных. Просто гляньте тут и сразу увидите разницу http://cppstudyo.com/post/5377/
0
|
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,044
|
|
03.08.2015, 22:38 | 3 |
Примеры:
Код
*.h typedef struct tmrs_queue { u08 tmr_flags; u16 tmr_cnt; u16 tmr_period; } tmrs_queue; extern struct tmrs_queue Timers_Queue []; *.c //------------------------------------------------------------------------ struct tmrs_queue Timers_Queue [TMRS_QUANTITY]; void service_timers(void) { if (sys_tick & (1<<SYS_TICK_FLG)) { sys_tick &= ~ (1<<SYS_TICK_FLG); struct tmrs_queue *p_tmrs_queue = Timers_Queue; for (p_tmrs_queue = Timers_Queue; p_tmrs_queue < Timers_Queue + TMRS_QUANTITY; p_tmrs_queue++) { if (p_tmrs_queue -> tmr_flags & (1<<TMR_UNLOCK_FLG)) { p_tmrs_queue -> tmr_cnt--; if (p_tmrs_queue -> tmr_cnt == 0) p_tmrs_queue -> tmr_flags |= (1<<TIME_OUT_FLG); } } } } //------------------------------------------------------------------------ //------------------------------------------------------------------------ void set_timer(u08 num_tmr, u08 flags, u16 time) { struct tmrs_queue *p_tmrs_queue = Timers_Queue+num_tmr; p_tmrs_queue -> tmr_flags = flags | (1<<TMR_UNLOCK_FLG); p_tmrs_queue -> tmr_cnt = time; } //------------------------------------------------------------------------ //------------------------------------------------------------------------ u08 woyt(u08 num_tmr) { struct tmrs_queue *p_tmrs_queue = Timers_Queue+num_tmr; if(p_tmrs_queue -> tmr_flags & (1<<TIME_OUT_FLG)) { p_tmrs_queue -> tmr_flags &= ~ (1<<TIME_OUT_FLG); return 1; } else return 0; } //======================================================================== Код
*.h typedef struct task { void (*func) (void); u08 status; u16 pouse; u16 period; } task; extern struct task Task_Queue []; *.c //======================================================================== task null_task = {(void*)0, 0, 0, 0}; //======================================================================== //======================================================================== struct task Task_Queue [MAX_TASKS]; // Очередь задач. static u08 Tail_Task_Queue; static u08 Cnt_Task_Queue; // Счетчик-указатель на текущую задачу в очереди. //======================================================================== //======================================================================== task null_task = {(void*)0, 0, 0, 0}; //======================================================================== //======================================================================== void clear_task_queue (void) // Очистка очереди задач. { u08 cnt = 0; while (cnt < MAX_TASKS) { Task_Queue [cnt++] = null_task; } } //------------------------------------------------------------------------ bool _set_task (task tmp_task) // Добавление задачи в очередь. { u08 i = 0; if (Tail_Task_Queue < MAX_TASKS) { while (i < Tail_Task_Queue) { if (tmp_task .func == Task_Queue [i] .func) { Task_Queue [i] = tmp_task; return trui; } i++; } Task_Queue [Tail_Task_Queue] = tmp_task; Tail_Task_Queue++; return trui; } return false; // Очередь задач заполнена, критическая ошибка. }
0
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 8
|
|
04.08.2015, 00:17 | 4 |
![]() #include <Tiny13.h> char data { char a; char b; char c[3]; } rabota; void main (void) { rabota={1;2;"WW"};// так все работает while(1) { // если инициализирую здесь, без инициализации // в main(void) то не работает rabota={1;2;"WW"};// так не работает rabota.a=20; // а присвоить могу } } Посоветуйте пожалуйста. Компилятор CVAVR. Помимо непонятного объявления самой структуры(наверное struct перед скобками отклеилось): Внутри цикла ,когда вы объявляете переменную какую-то,она создается с областью видимости :блок, и дальше вашего цикла не увидится.
0
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
04.08.2015, 10:19 | 5 |
Код
//Без инициализации struct example_t { int first; char second; char rnd; } example; //Обычная инициализация struct example_t { int first; char second; char rnd; } example = {0, 0, 0}; //Именованная с произвольным порядком struct example_t { int first; char second; char rnd; } example = { .rnd = 0, .first = 100500, second = 42 }; //Для обьявления структур через тип аналогично. example_t example_2 = {0, 0, 0};
0
|
04.08.2015, 10:19 | |
Помогаю со студенческими работами здесь
5
Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны Не могу дальше писать программу из-за того что не могу, не умею писать БД PictureBox. Как рисовать квадрат, круг (эллипс) и как писать текст? Можно ли как определить как писать формулы в яцейки из VBA по русски или английски? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |