Цитата(ivainc1789 @ Feb 9 2010, 19:23)

вы оформили SetPin() как функцию сознательно по каким-либо существенным мотивам или "просто так сложилось"?
Т. е. для вас есть существенная разница как написать данную функцию для девайса со всего лишь 4к флеша? ...
не проще ли макрос написать?
1) У меня система описания портов посложнее. Поскольку на одной плате реализовано несколько разноплановых проектов, я поставил задачу определять порты в отдельном файле в виде:
Код
OUTPUT ( PulseWdt , A , 0x01 )
OUTPUT ( Backlight , A , 0x02 )
OUTPUT ( EmptyError , A , 0x04 )
INPUT ( SdaIn , B , 0x01 )
и в общем то решил эту задачу с помощью функций. С макросами как-то не получалось. Не помню уже, почему.
2) если что макрос, что функция занимают одинаково места, то при чем тут размер памяти? Да, без оптимизации моя программа не поместится в память, но я никогда не компилирую без оптимизации. Компилятору нужно доверять.
3) Может и проще, но не такие, как у Вас

Писал я подобные макросы. Основной их недостаток - плохая читаемость. А будете работать с тремя-четырьмя семействами контроллеров одновременно, крыша съедет. Мое мнение такое - или макросы должны быть простейшие, или уж система макросов должна надежно поддерживать логичную структуру описания объектов.
От проекта к проекту я так и делаю то одно, то другое, не используя Ваши промежуточные подходы, когда нужно помнить всю эту логику "макросизации".
Эта тема обсуждалась на форуме пару раз, может есть смысл поискать.