Цитата(starter48 @ Oct 29 2005, 03:29)
А как ты собрался инлайнить ф-ю одного модуля в другой, если эта ф-я использует статические переменные в другом модуле?
Переменные, которые ты собрался использовать во встраиваемых ф-ях нужно сделать видимыми для всех, т.к. статическую переменную оптимизатор может просто выкинуть.
Я не собирался и не собираюсь ничего инлайнить. Эти вопросы к автору темы. Я использую инлайн функции только для прерываний или для функций и только в одном модуле с целью оптимизировать код в модуле.
Как правило один модуль в проекте отвечает за какой то один блок устройства. Это сродни классу в СРР, если вы пишите на протом Си. Поэтому, глобальные переменные одного модуля, я не показываю никогда другому модулю. Если же мне надо получить доступ к переменным одного модуля у другого, я делаю функции GetЧтоТо { return g_ЧтоТо; } или SetЧтоТо(value) { g_ЧтоТо = value;} и объявляю их в хедере модуля. Это все, конечно, не буквально, но что то в этом духе.
Пускай данные конструкции замедляют код, на за то они придают уверенности мне, что мой проект не грохнется где то на середине исполнения модуля.
Мы слишком часто в погоне за скоростью исполнения забываем про конструкции и алгоритмы. В итоге получив скорость, получаем головную боль, хромающую программу и потерянное время.