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

 
 
> структуры, доступ к полям
Метценгерштейн
сообщение Feb 8 2015, 10:08
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



вот у нас структура, через typedef
Код
typedef struct abc_s {
  int aa;
  int bb;
} abc_t;

создаю переменную этого типа
Код
abc_t abc;

дальше, хочу присвоить значение полю aa в моей переменной
Код
abc.aa = 8;

выдает ошибку. Почему? И как правильно?

а затолкав в ф-ю - все нормально. Т.е. вне ф-ии нельзя, получается, проводить начальную инициализацию?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Feb 8 2015, 12:14
Сообщение #2


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



я разобрался. нельзя одно поле инициализировать вне ф-ии. Можно только всю структуру пачкой.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 8 2015, 12:16
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Метценгерштейн @ Feb 8 2015, 15:14) *
нельзя одно поле инициализировать вне ф-ии. Можно только всю структуру пачкой.


Можно! Это GNU-расширение стандарта. Нужно использвать компилятор, это умеющий, например, gcc:

CODE

static struct mtd_partition myboard_nand_partitions[] = {
/* All the partition sizes are listed in terms of NAND block size */
{
.name = "xloader-nand",
.offset = 0,
.size = 4*(SZ_128K),
.mask_flags = MTD_WRITEABLE
},
{
.name = "uboot-nand",
.offset = MTDPART_OFS_APPEND,
.size = 14*(SZ_128K),
.mask_flags = MTD_WRITEABLE
},
{
.name = "params-nand",
.offset = MTDPART_OFS_APPEND,
.size = 2*(SZ_128K)
},
{
.name = "linux-nand",
.offset = MTDPART_OFS_APPEND,
.size = 40*(SZ_128K)
},
{
.name = "jffs2-nand",
.size = MTDPART_SIZ_FULL,
.offset = MTDPART_OFS_APPEND,
},
};

Go to the top of the page
 
+Quote Post
SSerge
сообщение Feb 8 2015, 12:40
Сообщение #4


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(SM @ Feb 8 2015, 19:16) *
Можно! Это GNU-расширение стандарта. Нужно использвать компилятор, это умеющий, например, gcc:

Это давно уже стандарт, но только для С, в стандарт С++ (вроде бы) пока ещё не внесли.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 8 2015, 12:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(SSerge @ Feb 8 2015, 15:40) *
Это давно уже стандарт

И, действительно, в ISO/IEC 9899:1999 уже есть... Не знал.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   структуры   Feb 8 2015, 10:08
- - SM   правильно вот так: abc_t abc = {8,9}; // по станд...   Feb 8 2015, 10:20
- - _Pasha   Цитата(Метценгерштейн @ Feb 8 2015, 14:08...   Feb 8 2015, 11:31
- - ViKo   Что-то у меня легко задается элемент структуры в м...   Feb 8 2015, 17:03
|- - SM   Цитата(ViKo @ Feb 8 2015, 20:03) Зачем да...   Feb 8 2015, 17:14
|- - ViKo   Цитата(SM @ Feb 8 2015, 20:14) Обычно, та...   Feb 8 2015, 17:20
||- - SM   Цитата(ViKo @ Feb 8 2015, 20:20) Попробов...   Feb 8 2015, 17:35
|- - ohmjke   Цитата(SM @ Feb 8 2015, 21:14) Обычно, та...   Apr 2 2015, 13:12
|- - CrimsonPig   Цитата(ohmjke @ Apr 2 2015, 14:12) Так а ...   Apr 2 2015, 13:40
|- - SSerge   Цитата(ohmjke @ Apr 2 2015, 20:12) Но мне...   Apr 2 2015, 15:56
- - ViKo   Возвращаясь к стартовому вопросу... У меня всё раб...   Feb 8 2015, 17:39
|- - SM   Цитата(ViKo @ Feb 8 2015, 20:39) И я не п...   Feb 8 2015, 17:41
- - ViKo   Я же написал, что работает. В Keil. В Main вот так...   Feb 8 2015, 17:59
- - SM   Цитата(ViKo @ Feb 8 2015, 20:59) В Main в...   Feb 8 2015, 18:00
- - ViKo   Цитата(SM @ Feb 8 2015, 21:00) А вне Main...   Feb 8 2015, 18:06


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

 


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


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