Перейти к содержанию
    

Анонимные структуры IAR vs Keil

Идентификатор (текстовый) - синоним имени

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Идентификатор (текстовый) - синоним имени, когда речь идёт о тексте исходника. Или в Си он с чем-то другим связан? Или в Си++.

Все верно: в качестве идентификатора используются поля вложенной структуры так, как если бы они были просто полями, без организации в анонимную структуру.

К этому по сути вся анонимность и сходится.

При иерархии, естественно, возникает ошибка "идентификатор уже был определен ранее".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Синоним в языке общения. В том контексте.

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

 

Вы лучше объясните топикстартеру как это заявление

Лично я никогда никакой разношерстности толкования компиляторами не замечал, а пользую повседневно я их 6-7 штук.

Либо компилятор понимает, либо нет. После с99 понимают все. До с99 - некоторые. Поминаемый здесь Кейл, правда, не использовал сколь-нибудь серьезно никогда.

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

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

легко находится в сети

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Топикстартер собирался исключительно имена элементов использовать. Без иерархии... Обломался.

-так наверно и получилось в Кеиле, -имена есть, а иерархии -нет, но вы держитесь (с))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

-так наверно и получилось в Кеиле, -имена есть, а иерархии -нет, но вы держитесь (с))

Не изучал со структурами, но анонимные юнионы в ИАРе исключены из некоторых версий компилятора.

ИАР ссылается на ANSY C.

Как по мне, шаг в нужном направлении, "типизация - наше всё".

Хотя поначалу было непросто, обновился ради нового кристалла, а нужно все перелопатить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...