ohmjke 0 25 ноября, 2015 Опубликовано 25 ноября, 2015 · Жалоба Если ли в 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 25 ноября, 2015 Опубликовано 25 ноября, 2015 · Жалоба Если кейл поддерживает с++11, то decltype + компиляция в режиме с++ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 ноября, 2015 Опубликовано 25 ноября, 2015 · Жалоба В документе ARM Compiler v5.06 for µVision armcc User Guide ключевое слово typeof не упоминается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ohmjke 0 25 ноября, 2015 Опубликовано 25 ноября, 2015 · Жалоба Да, печально это. Компилировать в режиме C++ не вариант. Видимо, придется явно передавать тип в макрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба Компилировать в режиме C++ не вариант. А почему? Широко используются специфично сишные приемы? А какие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ohmjke 0 26 ноября, 2015 Опубликовано 26 ноября, 2015 · Жалоба Ну, если я правильно понимаю, это нужно будет каждый исходный файл, в который подключается заголовочник с описанным выше макросом, компилировать как исходник C++? Так не пойдет, ибо проект пишется только на C. Даже C99 не везде используется. Вот если бы можно было один единственный файл компилить в C++, тогда еще можно было бы подумать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться