Название: u_int32 и inline Отправлено: IzoLda от Январь 23, 2012, 09:57 объясните,пожалуйста что переменная u_int32 и в каких целях применяется ключевое слово inline??
Название: Re: u_int32 и inline Отправлено: Пантер от Январь 23, 2012, 10:11 u_int32 - 32-битное целое беззнаковое число.
inline говорит компилятору, что функцию нужно встроить. То есть не вызывать ее, а поместить ее код в место вызова. Можно не использовать, так как компилятор игнорирует это. Название: Re: u_int32 и inline Отправлено: Igors от Январь 23, 2012, 10:21 Наверное лучше сказать что inline говорит компилятору что ф-цию/метод желательно встроить, а встроит он или нет - его личное дело. Если опыта маловато - можно спокойно жить без inline
Название: Re: u_int32 и inline Отправлено: IzoLda от Январь 23, 2012, 10:31 а нужно ли подключать дополнительный заголовочный файл для переменной u_int32 ?
Название: Re: u_int32 и inline Отправлено: Disa от Январь 23, 2012, 11:03 to Igors:
Мне из личного любопытства, тк опыт на плюсах есть, но не могу сказать что большой. У вас было когда вы в пром. коде что-то отпимизировали inlin'ом и это помогло? Название: Re: u_int32 и inline Отправлено: mutineer от Январь 23, 2012, 11:54 to Igors: Мне из личного любопытства, тк опыт на плюсах есть, но не могу сказать что большой. У вас было когда вы в пром. коде что-то отпимизировали inlin'ом и это помогло? Насколько я знаю из книг и советов коллег сейчас вручную писать inline почти бесполезно - компилятор лучше знает когда выгоднее функцию встроить, а когда нет Название: Re: u_int32 и inline Отправлено: IzoLda от Январь 23, 2012, 12:08 спасибо всем!)
Название: Re: u_int32 и inline Отправлено: Disa от Январь 23, 2012, 12:44 to mutineer:
Я по этому и спросил. :) Саттер писал, что inline почти всегда эквивалентен пробелу, но тем не менее в конце говорит: Цитировать "Избегайте использования ключевого слова inline или других попыток оптимизации до тех пор, пока на их необходимость не укажут измерения производительности программы" Название: Re: u_int32 и inline Отправлено: Igors от Январь 23, 2012, 14:42 to Igors: Когда-то было, правда обычно не более 5-10% :) Да, сейчас что-то ускорить inlin'ом трудно, если вообще возможно. Но на мой взгляд inline хорош тем что сразу видно кто это: капитальная ф-ция/метод или так себе, аксессор и.т.п.Мне из личного любопытства, тк опыт на плюсах есть, но не могу сказать что большой. У вас было когда вы в пром. коде что-то отпимизировали inlin'ом и это помогло? Название: Re: u_int32 и inline Отправлено: Пантер от Январь 23, 2012, 14:53 Есть еще всякие force_inline.
Название: Re: u_int32 и inline Отправлено: gogi от Январь 24, 2012, 08:01 Насколько я знаю из книг и советов коллег сейчас вручную писать inline почти бесполезно - компилятор лучше знает когда выгоднее функцию встроить, а когда нет Некоторые функции не могут быть заинлайнены по ряду причин (например из-за forward declaration). В gcc можно включить соответствующий варнинг и это станет видно. После этого можно устранить эти причины и компилятор дальше уже сам справится. Так что смысл от inline'а всё же есть. Название: Re: u_int32 и inline Отправлено: mutineer от Январь 24, 2012, 11:10 После этого можно устранить эти причины и компилятор дальше уже сам справится То есть гарантированно заинлайнит функцию? Название: Re: u_int32 и inline Отправлено: gogi от Январь 24, 2012, 12:30 То есть гарантированно заинлайнит функцию? Не факт, он будет смотреть по обстоятельствам. Но это всё же лучше, чем гарантированное незаинлайнивание. Название: Re: u_int32 и inline Отправлено: mutineer от Январь 24, 2012, 12:36 То есть гарантированно заинлайнит функцию? Не факт, он будет смотреть по обстоятельствам. Но это всё же лучше, чем гарантированное незаинлайнивание. А разве отстутсвие inline гарантирует незаинлайнивание? Мне кажется что с включенными оптимизациями компилер может заинлайнить любую функцию по своему усмотрению Название: Re: u_int32 и inline Отправлено: stima от Январь 27, 2012, 12:13 Код: class MyClass { Код: template<class T> Название: Re: u_int32 и inline Отправлено: Disa от Январь 31, 2012, 09:16 Что значит адекватное использование inline?
Как узнать, что она окажется встроенной или нет, если его (inline) писать / не писать? В любом случае, как я понимаю нужно смотреть спецификацию компилятора. Название: Re: u_int32 и inline Отправлено: LisandreL от Март 16, 2012, 18:48 Как узнать, что она окажется встроенной или нет, если его (inline) писать / не писать? Встречный вопрос: а в сущности зачем вам это знать?Название: Re: u_int32 и inline Отправлено: Disa от Март 19, 2012, 10:27 Не ясен суть комментария stima про адекватное использование - только как внешняя подсказка типа const? Я немного сомниваюсь, что сейчас много кто способен лучше компилятора понять какую функцию встраивать, а какую нет.
Название: Re: u_int32 и inline Отправлено: Blackwanderer от Март 19, 2012, 17:03 Как узнать, что она окажется встроенной или нет, если его (inline) писать / не писать? Боюсь, даже спецификации не помогут, только исходный код. Более-менне однозначно описано только то, что гарантированно заинлайнить нельзя. Все остальное - исходя из контекста.В любом случае, как я понимаю нужно смотреть спецификацию компилятора. |