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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Анонимные структуры IAR vs Keil
zltigo
сообщение Jun 9 2016, 11:04
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (GetSmart @ Jun 9 2016, 08:35) *
Идентификатор (текстовый) - синоним имени

Так вот ни имени, ни синонима там нет. Там есть тип. Все. Назвать все нужно своими именами. Тогда ВСЕ становится ясным.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aiwa
сообщение Jun 9 2016, 13:59
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(GetSmart @ Jun 9 2016, 08:35) *
Идентификатор (текстовый) - синоним имени, когда речь идёт о тексте исходника. Или в Си он с чем-то другим связан? Или в Си++.

Все верно: в качестве идентификатора используются поля вложенной структуры так, как если бы они были просто полями, без организации в анонимную структуру.
К этому по сути вся анонимность и сходится.
При иерархии, естественно, возникает ошибка "идентификатор уже был определен ранее".
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 9 2016, 17:00
Сообщение #33


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(zltigo @ Jun 9 2016, 15:04) *
Так вот ни имени, ни синонима там нет. Там есть тип. Все. Назвать все нужно своими именами. Тогда ВСЕ становится ясным.

Синоним в языке общения. В том контексте.
Вы приводили текстовые примеры. И программы (исходники) языка Си тоже текстовые. С какого момента последовательность букв стала именно типом? Сперва выделится лексический элемент, а потом будет происходить его поиск в допустимых списках компилятора, с учётом контекстных приоритетов и правил. Либо могут выделяться сразу несколько лексических элементов до того, как начнётся их поиск. В начале лексического анализа типов нет. Можно было бы поспорить что на этом уровне есть, но не ясно какой терминологии лучше придерживаться. Идентификатором я называл набор символов (из текста), лексическую еденицу выделенную по лексическим правилам. Соответствующую правилим задания имён (ака идентификаторов).

Вы лучше объясните топикстартеру как это заявление
Цитата(zltigo)
Лично я никогда никакой разношерстности толкования компиляторами не замечал, а пользую повседневно я их 6-7 штук.
Либо компилятор понимает, либо нет. После с99 понимают все. До с99 - некоторые. Поминаемый здесь Кейл, правда, не использовал сколь-нибудь серьезно никогда.

решит его проблему. Какой формулировкой C99 или C11 разрешает безымянные переменные с типом struct. И какой разрешаются безымянные члены с типом struct.

Сообщение отредактировал GetSmart - Jun 10 2016, 15:55


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jun 10 2016, 09:52
Сообщение #34


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



легко находится в сети
Код
Hello All
In IAR C it's possible to declare a struct without an identifier, like:

struct
{
unsigned char TempBit:1;
unsigned char TempBitInt:1;
unsigned char f2:1;
unsigned char f3:1;
unsigned char f4:1;
unsigned char f5:1;
unsigned char f6:1;
unsigned char f7:1;
};

And access the bits directly TempBit=1,
In GCC however an identifier is requiered

struct BTEST
{
unsigned char TempBit:1;
unsigned char TempBitInt:1;
unsigned char f2:1;
unsigned char f3:1;
unsigned char f4:1;
unsigned char f5:1;
unsigned char f6:1;
unsigned char f7:1;
};

And access done like BTEST.TempBit=1 ,,,
Can it realy be that GCC cant handle structs without identifiers ?
Best regards,

У GCC тоже свои тараканы расширения.

Сообщение отредактировал GetSmart - Jun 10 2016, 10:29


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
dimone
сообщение Jun 14 2016, 12:23
Сообщение #35


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 23-02-09
Пользователь №: 45 242



Цитата(ViKo @ Jun 9 2016, 12:19) *
Топикстартер собирался исключительно имена элементов использовать. Без иерархии... Обломался.

-так наверно и получилось в Кеиле, -имена есть, а иерархии -нет, но вы держитесь (с))
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2016, 22:15
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(dimone @ Jun 14 2016, 15:23) *
-так наверно и получилось в Кеиле, -имена есть, а иерархии -нет, но вы держитесь (с))

Не изучал со структурами, но анонимные юнионы в ИАРе исключены из некоторых версий компилятора.
ИАР ссылается на ANSY C.
Как по мне, шаг в нужном направлении, "типизация - наше всё".
Хотя поначалу было непросто, обновился ради нового кристалла, а нужно все перелопатить.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


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


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