Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глюк с #define, typedef vs #define 
V
    Опции темы
Rockie
Дата 24.7.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата
 typedef float* float_ptr;
 #define FLOAT_PTR  float*

  float_ptr pf1, pf2; //тут все прекрасно
  FLOAT_PTR PF1, PF2; //а вот тут будет не так все радужно, после препроцессора это 
                      //будет эквивалентно вот чему: float* PF1, float PF2;

  float *ff;
  pf1 = ff;
  pf2 = ff;
  PF1 = ff; //до сих пор все хорошо
  PF2 = ff; //а тут ошибка assignment to 'float' from 'float*' lacks a cast

А все потому, что препроцессор сделал простую текстовую замену smile
...
Сергей Малышев (aka Михалыч).


почему FLOAT_PTR PF1, PF2; преобразуется в float* PF1, float PF2; ?  


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Damarus
Дата 24.7.2006, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Ну там же написано:

Цитата(Rockie @  24.7.2006,  23:22 Найти цитируемый пост)
Цитата

А все потому, что препроцессор сделал простую текстовую замену


После препроцессора это:
Код

FLOAT_PTR PF1, PF2;


заменяется на это:
Код

float* PF1, PF2;


, что равносильно:
Код

float* PF1; float PF2;

 
PM MAIL ICQ Jabber   Вверх
Rockie
Дата 24.7.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Цитата(Damarus @  24.7.2006,  22:29 Найти цитируемый пост)
что равносильно:
Код
float* PF1; float PF2; 

вот это мне и непонятно. почему не 
Код
float* PF1, PF2;
 ? 


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Damarus
Дата 24.7.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Так это одно и тоже. Чтобы получить два указателя пиши так:
Код

float* PF1, *PF2;


, что равносильно:
Код

float* PF1; float* PF2; 
 
PM MAIL ICQ Jabber   Вверх
Fin
Дата 24.7.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: 3
Всего: 10



Rockie, Можно спросить источник этой статьи? 


--------------------
Пролетал мимо.
PM MAIL   Вверх
Damarus
Дата 24.7.2006, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Fin, думаю это: http://club.shelek.com/viewart.php?id=269 
PM MAIL ICQ Jabber   Вверх
Rockie
Дата 24.7.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



да, именно
у этого автора есть еще статьи, imho отличные

Добавлено @ 23:45 
Damarus, спасибо! 


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1242 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.