реклама на сайте
подробности

 
 
> typedef
DRUID3
сообщение May 25 2008, 02:19
Сообщение #1


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Мало сплю последнее время и тупею потому sad.gif . Итак есть тип заданный typedef . Как проверить его соответствует он int или float (третьего не дано) - от этого будут зависеть остальные действия...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение May 25 2008, 10:52
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Код
    typedef float real;

    const float tmp = 1.0/3;  // любое число, только не 0 :)

    if (*(real *)&tmp == tmp)
    { asm("NOP");
    }

У меня такой код в случае несоответствия типа вообще выбрасывается. Браво компилятору (IAR). В случае совпадения типов остаётся только ядро IFa без сравнения.

Или так:
Код
    typedef int real;

    #define RealIsFloat ((real)0.5f == 0.5f)

    if (RealIsFloat)
    { // если плавающая арифметика
    }
    else
    { // если целочисленная арифметика
    }


Сообщение отредактировал GetSmart - May 25 2008, 11:40


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016