Название: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 18:20 Всем доброго времени.
Пытаюсь под Gcc компилятор написать макрос типа: Код
Но компилятор упорно ругается: Цитировать error: pasting "printf" and "(" does not give a valid preprocessing token Блин. Студийный же компилятор глотает это без проблем. Мож кто знает как написать аналогичное под GCC ? Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: BRE от Март 26, 2012, 18:25 А ты как это использовать хочешь?
В частности это не совсем понял: printf##strings; Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: V1KT0P от Март 26, 2012, 18:50 Всем доброго времени. Вот так должно работать:Пытаюсь под Gcc компилятор написать макрос типа: Код
Но компилятор упорно ругается: Цитировать error: pasting "printf" and "(" does not give a valid preprocessing token Блин. Студийный же компилятор глотает это без проблем. Мож кто знает как написать аналогичное под GCC ? Код
Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 19:50 А ты как это использовать хочешь? Примерно так: trace.h Код
main.c Код
Цитировать В частности это не совсем понял: printf##strings; должно получится после контактенации для этой записи:Код
Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 19:54 Цитировать Вот так должно работать: Код
нет, не должно :) Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kambala от Март 26, 2012, 19:57 может лучше писать по-хорошему, через форматные строки? что-то типа такого:
Код но придется явно задавать формат для аргументов Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: V1KT0P от Март 26, 2012, 20:03 Цитировать Вот так должно работать: Код
нет, не должно :) Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 20:07 Цитировать Тогда объясни что я делаю не так ибо оно у меня работает. А ты попробуй вывести форматированный вывод. Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: V1KT0P от Март 26, 2012, 20:14 Цитировать Тогда объясни что я делаю не так ибо оно у меня работает. А ты попробуй вывести форматированный вывод. Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 20:31 Цитата: V1KT0P Вот тебе форматированный вывод. Ты конкретнее скажи. Ок. Код
:) Цитата: kambala может лучше писать по-хорошему, через форматные строки? что-то типа такого: Да, вроде так работает. Спасибо. Пока остановился на таком варианте: trace.h Код
использование: Код
Но хотелось бы конечно чтобы формат при использовании был такой: Код
Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: V1KT0P от Март 26, 2012, 20:48 Пока остановился на таком варианте: А почему не хочешь взять готовое: log4qt, log4cpp, log4cplus, log4cxx и т.д.?Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 26, 2012, 20:59 Потому что это для ARM7.
Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kamre от Март 26, 2012, 21:59 Вот тебе форматированный вывод. Ты конкретнее скажи. На скриншоте парсер в QtCreator не осилил то, что переменная используется внутри макроса и решил ее подчеркнуть в редакторе?Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: V1KT0P от Март 26, 2012, 23:42 Вот тебе форматированный вывод. Ты конкретнее скажи. На скриншоте парсер в QtCreator не осилил то, что переменная используется внутри макроса и решил ее подчеркнуть в редакторе?Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kamre от Март 27, 2012, 10:54 Именно, есть недочеты в парсере, надеюсь кто-то их исправит. Пока свой парсер в QtCreator отстойный, даже с макросами не справляется. Вся надежда на интеграцию с clang, вряд ли они уже свой парсер нормальным сделают.Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: kuzulis от Март 27, 2012, 11:40 А он то подчеркивает, то нет. Если убрать ';', закрыть лист, открыть, добавить снова ';' - то подчеркивание снимается.
Как-то так, шаманство :) Название: Re: Gcc. Препроцессор. Контактенация. Отправлено: mutineer от Март 27, 2012, 11:47 Какое интересное слово в теме - "контактенация"... Это типа "нация людей, живущих вконтакте"?:)
|