C++ за 21 день седьмое издание



Download 1,38 Mb.
bet109/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   105   106   107   108   109   110   111   112   ...   437
Bog'liq
word1

inline double GetPiO

{
return 3.14159;


}


Аналогично функция, которая только удваивает число или выполняет похожие простьк операции, является хорошим кандидатом на встраивание. Один из таких случаев приведи в листинге 7.10.

6 Зак. 3626

  1. ЗАНЯТИЕ 7. Организация кода при помощи функций

ЛИСТИНГ 7.10. Использование встраиваемой функции, удваивающей целое число





  1. #include




  1. using namespace std;



2 :



  1. // определение встраиваемой функции удвоения




  1. inline long DoubleNum (int InputNum)




  1. {




  1. return InputNum * 2;




  1. }

  2. :




    1. int main()

10: {

  1. cout « "Enter an integer: ";




  1. int InputNum = 0;




  1. cin » InputNum;



14:



  1. // Вызов встраиваемой функции




  1. cout « "Double is: " « DoubleNum(InputNum) « endl;








  1. return 0;




  1. }



Результат


Enter an integer: 35


Double is: 70


Анализ

Рассматриваемое ключевое слово, i n l i n e , используется в строке 4. Компиляторы, как правило, рассматривают это ключевое слово как просьбу поместить содержимое функции DoubleNum () непосредственно по месту ее вызова (строка 16), что увеличивает скорость выполнения кода.





  1. то же время указание функций как встраиваемых способно увеличить размер кода, особенно если встраиваемая функция содержит сложную обработку или имеет большой размер. Использовать ключевое слово i n l i n e следует по минимуму и только для тех функций, которые выполняют простые действия, сравнимые по объему с дополнительны­ ми затратами на вызов обычной функции, как упоминалось ранее.

Самые современные компиляторы C++ обладают различными возможностя­ ми по оптимизации производительности. Некоторые, такие как компилятор Microsoft C++ Compiler, позволяют оптимизировать по размеру или скорости приложения. Первое весьма важно при разработке программного обеспече­ ния для различных устройств, как правило, мобильных, где память может быть очень ценна. При оптимизации по размеру компилятор отклоняет большинство просьб о встраивании, поскольку это может увеличить размер кода.


При оптимизации по скорости компилятор обычно удовлетворяет просьбы о встраивании (там, где это имеет смысл) и делает это иногда даже в тех случаях, когда никто его об этом не просит.



Как процессор обрабатывает вызовы функций

163



С++11


Лямбда-функции

Этот раздел — только введение в сложную для новичков концепцию. Попробуйте из­ учить ее, но не расстраивайтесь, если это не получится. Более подробная информация о лямбда-функциях приведена на занятии 22, “Лямбда-выражения языка С++1 Г \


Лямбда-функции очень полезны, если вы часто используете алгоритмы STL для сор­ тировки и обработки данных, содержащихся, например, в таких контейнерах STL, как s t d : : v e c t o r (динамический массив). Как правило, сортировка требует предоставить двоичный предикат, реализованный как оператор в классе, что требует весьма кропот­ ливого программирования. Компиляторы, совместимые со стандартом С++11, позволяют создавать лямбда-функции и не тратить много усилий, как показано в листинге 7.11.


ЛИСТИНГ 7.11. Использование лямбда-функции для сортировки





  1. отображения элементов массива________________________________________________





    1. Download 1,38 Mb.

      Do'stlaringiz bilan baham:
1   ...   105   106   107   108   109   110   111   112   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish