Cтраница 2
Подставляемые функции объявляются подобно обычным функциям, но с использованием ключевого слова inline. Когда компилятор встречает в исходном тексте программы обращение к подставляемой функции, он помещает в исполняемый файл отдельную копию этой функции. Подставляемые функции выполняются быстрее, поскольку фактически вызова функции не происходит. [16]
Часто это не имеет большого значения, поэтому используйте тот вариант, который кажется вам проще. Однако макросы предоставляют такие дополнительные возможности, как замена символов, взятие в кавычки и конкатенация. Ни одна из этих возможностей не реализуется с помощью подставляемой функции. [17]
Опция Disable Inline Expansions ( Запретить подстановку функций) управляет тем, как компилятор обрабатывает вызовы подставляемых функций. По умолчанию, тело функции подставляется в месте ее вызова. Эта опция редко используется, но при отладке некоторых подставляемых функций она может вам потребоваться. [18]
Этот компонент и программа FlashTst включены в состав CD-ROM, прилагаемого к книге. Однако исходный файл компонента там называется Flashing. Запустите тестовую программу и убедитесь в том, что компонент работает, как ожидалось. Это обеспечивает подставляемая функция ClickQ в объявлении класса компонента. [19]
Поначалу исходные тексты могут выглядеть устрашающе, но спустя некоторое время вы начнете понимать замысел разработчиков. Попытайтесь определить, где ваших знаний о Си недостаточно. Обратите внимание на то, как разработчики библиотеки используют в классах закрытый, защищенный и открытый уровни доступа; как и когда включаются подставляемые функции; как скрываются от пользователя детали, которые не должны быть видны. Изучение хорошей библиотеки классов может сильно помочь в освоении Си и объектно-ориентированного подхода к программированию. [20]