crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Странный #define, требуется пояснение
hkarel
  опции профиля:
сообщение 27.11.2009, 16:10
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 25.5.2009
Пользователь №: 771

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте.
Изучая потроха Qt наткнулся на такую запись:
# define Q_DECLARE_INTERFACE(IFace, IId) Q_DECLARE_INTERFACE(IFace, IId)

Вопрос: зачем в теле макроса повторять его наименование? Какой а этом смысл?
Почему бы просто не записать
# define Q_DECLARE_INTERFACE(IFace, IId)

?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 27.11.2009, 20:21
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


DIMEDROLL, когда работает препроцессор, то он вместо макроса подставлет его тело, если тела нет, то он ничего неподставит, т.е.
До препроцессора было:
#define FIRST(A, B)
#define SECOND(A, B) THERD(A, B)

// Далее по коду
FIRST(X, Y);
SECOND(X, Y)
после перпроцессора
//препроцессорных директив больше нет, они разрешены
// Далее по коду

THERD(X, Y)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 20:25