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

 
 
 
Reply to this topicStart new topic
> typeof в Keil
ohmjke
сообщение Nov 25 2015, 05:03
Сообщение #1


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

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Если ли в keil поддержка этой штуки?
Есть ли какие-то другие способы узнать тип переменной?
Нужно для макроса:
Код
#define list_for_each_entry(pos, head, member)                \
    for (pos = list_entry((head)->next, typeof(*pos), member);    \
         &pos->member != (head);                     \
         pos = list_entry(pos->member.next, typeof(*pos), member))

Это кусок из ядра linux. Но там, судя по всему, используется gcc.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 25 2015, 05:15
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Если кейл поддерживает с++11, то decltype + компиляция в режиме с++
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 25 2015, 08:36
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В документе ARM Compiler v5.06 for µVision armcc User Guide ключевое слово typeof не упоминается.
Go to the top of the page
 
+Quote Post
ohmjke
сообщение Nov 25 2015, 15:40
Сообщение #4


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

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Да, печально это. Компилировать в режиме C++ не вариант.
Видимо, придется явно передавать тип в макрос.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 26 2015, 06:14
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(ohmjke @ Nov 25 2015, 18:40) *
Компилировать в режиме C++ не вариант.


А почему? Широко используются специфично сишные приемы? А какие?
Go to the top of the page
 
+Quote Post
ohmjke
сообщение Nov 26 2015, 16:04
Сообщение #6


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

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Ну, если я правильно понимаю, это нужно будет каждый исходный файл, в который подключается заголовочник с описанным выше макросом, компилировать как исходник C++? Так не пойдет, ибо проект пишется только на C. Даже C99 не везде используется.
Вот если бы можно было один единственный файл компилить в C++, тогда еще можно было бы подумать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:51
Рейтинг@Mail.ru


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