Правила программирования на С и С++. Главы 1-6 Страница 86. Глава 6. Препроцессор
|
Страница 86 из 93 Глава 6. Препроцессор Многие свойства языка С++ делают препроцессор С менее важным, чем он был по традиции. Тем не менее, препроцессор иногда нужен даже в программе на С++ и, естественно, остается неотъемлемой частью программирования на С. Правила в этой главе книги посвящены правильному использованию препроцессора. Я должен сказать, что многие из тех макросов, которые мне пришлось видеть, имеют довольно сомнительные основы с точки зрения удобочитаемости и сопровождения. Я часто предпочитаю не пользоваться макросом, если эквивалентная функция сделает ту же самую работу в более удобочитаемой манере, и никогда не хочу использовать макрос, вызывающий побочный эффект (будет рассмотрено ниже). В С++ я никогда не пользуюсь макросами с параметрами, используя вместо них встроенные (inline) функции или шаблоны, которые расширяются компилятором до встроенных функций. Макрос с параметрами даже в языке С должен быть методом, используемым лишь в крайнем случае. В макросах трудно обнаруживать ошибки (так как они не выполняется в пошаговом режиме), часто тяжело читать и, в лучшем случае, сложно сопровождать. Используйте их лишь тогда, когда скорость выполнения действительно является критерием, подтверждаемым фактическим тестированием кода с их использованием. Таким образом, эта глава книги содержит правила для тех случаев, где препроцессор является единственным решением проблемы. |