Середа, 19.09.2018, 08:16
Приветствую Вас Гість | RSS

Radiomanoff+

Меню сайта
Форма входа
Календарь
«  Вересень 2018  »
ПнВтСрЧтПтСбНд
     12
3456789
10111213141516
17181920212223
24252627282930

Structures(структуры)-1часть."Help" - CodeVisionAVR.Вкладка - "Variables(Переменные)"

Structures (структуры)

 

 

Структуры, определяемые пользователем коллекций имени членов.

В состав членов может быть любой из поддерживаемых типов данных, массивы этих типов данных или указатели на них.

Структуры, определяются с учетом структуры зарезервированное ключевое слово.

Синтаксис:

 

[<memory attribute>] struct [<structure tag-name>] {

    [<type> <variable-name>[,<variable-name>, ...]];

    [<type> [<bitfield-id>]:<width>[,[<bitfield-id>]:<width>, ...]];

    ...

    } [<structure variables>];

 

Пример:

 

/* Global structure located in RAM (Глобальная структура, расположенная в оперативной памяти )*/

struct ram_structure {

             char a,b;

             int  c;

             char d[30],e[10];

             char *pp;

             } sr;

 

/* Global constant structure located in FLASH (Глобальная постоянная структура, расположенная в FLASH )*/

flash struct flash_structure {

             int  a;

             char b[30], c[10];

             } sf;

 

/* Global structure located in EEPROM (Глобальная структура расположена в EEPROM )*/

eeprom struct eeprom_structure {

             char a;

             int  b;

             char c[15];

             } se;

 

void main(void) {

/* Local structure (локальные структуры) */

struct local_structure {

             char a;

             int  b;

             long c;

             } sl;

 

/* ............. */

 

}

 

Пространство, выделенное для структуры в оперативной памяти равен сумме размеров всех его членов.

 

 

То же универсального типа структуры могут быть объявлены в любой тип памяти: RAM, EEPROM или FLASH:

 

 

/* Generic structure type (Универсальный тип структуры )*/

struct my_structure {

             char a,b;

             int  c;

             char d[30],e[10];

             char *pp;

             };

 

/* Global structure located in RAM (Глобальная структура, расположенная в оперативной памяти )*/

struct my_structure sr;

 

/* Global pointer located in RAM to the RAM located structure (Глобальный указатель находится в оперативной памяти RAM расположены структуры )*/

struct my_structure *ptrsr = &sr;

 

/* Global pointer located in FLASH to the RAM located structure (Глобальный указатель находится во флэш-памяти в ОЗУ расположены структуры) */

struct my_structure * flash ptrfsr = &sr;

 

/* Global pointer located in EEPROM to the RAM located structure */

struct my_structure * eeprom ptresr = &sr;

 

/* Global constant structure located in FLASH */

flash struct my_structure sf = {0,0,0,{0},{0},0};

 

/* Global pointer located in RAM to the FLASH located structure */

flash struct my_structure *ptrsf = &sf;

 

/* Global pointer located in FLASH to the FLASH located structure */

flash struct my_structure * flash ptrfsf = &sf;

 

/* Global pointer located in EEPROM to the FLASH located structure */

flash struct my_structure * eeprom ptresf = &sf;

 

/* Global constant structure located in EEPROM */

eeprom struct my_structure se;

 

/* Global pointer located in RAM to the EEPROM located structure */

eeprom struct my_structure *ptrse = &se;

 

/* Global pointer located in FLASH to the EEPROM located structure */

eeprom struct my_structure * flash ptrfse = &se;

 

/* Global pointer located in EEPROM to the EEPROM located structure */

eeprom struct my_structure * eeprom ptrese = &se;

 

void main(void) {

/* Local structure */

struct my_structure sl;

/* Local pointer to the RAM located global structure */

struct my_structure *ptrlsr = &sr;

/* Local pointer to the FLASH located global structure */

flash struct my_structure *ptrlsf = &sf;

/* Local pointer to the EEPROM located global structure */

eeprom struct my_structure *ptrlse = &se;

 

/* ............. */

 

}

Архив записей
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0