Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > об inline функциях


Автор: cskcsk 15.6.2005, 00:42
Довольно много приходится делать в ВС3.1 под ДОС, но так и не понял, как он обходится с inline-функциями. Как ни загляну в ассемблерный текст (его работы), так все call-ы одни. Понятно, что стандарт не обязывает компилятор вставлять инлайны, где заказано, но все-таки хоть иногда бы удовлетворял.
Может быть существуют приемы, стили и.т.п., которые стимулировали бы компилятор на это дело? smile

Автор: JackYF 15.6.2005, 02:40
ключевое слово inline только рекомендует компилятору сделать функцию подставляемой. Кстати, далеко не все функции, по стандарту, могут быть подставляемыми; а еще в случае этого "компилятора" вряд ли что-либо можно сделать.

P.S. Кстати, стоит покопаться в настройках проекта - там иногда для дебага опция просто принудительно отключается smile

Автор: chaos 15.6.2005, 05:58
на сколько я помню стандарт не разрешает иметь в инлайн функциях циклы условия свитчи

Автор: Alastis 15.6.2005, 06:39
в vc есть такое: __forceinline — безусловный приказ компилятору сделать функцию инлайн. Правда и тогда есть некоторые случаи, в которых компилятор не обратит внимание на эту опцию. Посмотри, может и в ВС3.1 есть что то подобное

Автор: Void 15.6.2005, 19:34
Цитата(chaos @ 15.6.2005, 07:58)
на сколько я помню стандарт не разрешает иметь в инлайн функциях циклы условия свитчи

Стандарт по поводу ограничений/гарантий на инлайн-подстановку вообще ничего не говорит. Реализация вправе хоть вообще игнорировать inline. Циклы, условия, свитчи прекрасно инлайнятся Intel C++ и чуть хуже MSVC.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)