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

 
 
> Понятие стандартного типа и тип операндов..., 16/32битный Cи компилятор. Хочу раз и на всегда уточнить.
sigmaN
сообщение Nov 28 2009, 00:06
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Имеем код
Код
uint32_t a = 320 * 240;

Компилятор будет трактовать операнды 320 и 240 как имеющие тип int? Результат будет зависеть от разрядности int(16/32), правильно я понимаю?
И вообще, когда говорят "16ти битный компилятор" имеют ввиду именно разрядность int?
На C2000 int 16ти битный и a получается == 11264, хотя на самом деле должно быть 76800.
А что,если так?
Код
uint32_t a = (uint32_t)320 * 240;
чё получим?

или так
Код
uint32_t a = 320 * (uint32_t)240;


ну так то понятно, что всё будет OK
Код
uint32_t a = (uint32_t)320 * (uint32_t)240;


Сбивает ещё то, что в какой-то книге довелось прочитать, что тип будет взят от первого операнда... потом на форуме видел, что такие вещи компилятор трактует как имеющие стандартный тип(есть вообще такое понятие?).

Копнуть ISO/IEC 9899:1999 пытался, но без привычки это достаточно сложно....

Тему поднял потому, что как-бы о портируемости думать тоже нужно, а с этим типом int и его длиной бывают приколы, как я понял....


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sigmaN   Понятие стандартного типа и тип операндов...   Nov 28 2009, 00:06
- - DpInRock   ЦитатаКомпилятор будет трактовать операнды 320 и 2...   Nov 28 2009, 04:23
|- - Сергей Борщ   Цитата(DpInRock @ Nov 28 2009, 06:23) А в...   Nov 28 2009, 14:54
- - baralgin   Цитата(sigmaN @ Nov 28 2009, 02:06) А что...   Nov 28 2009, 08:59
- - dxp   Цитата(sigmaN @ Nov 28 2009, 06:06) Имеем...   Nov 28 2009, 09:39
|- - SM   Цитата(dxp @ Nov 28 2009, 12:39) Но я бы ...   Nov 28 2009, 10:43
|- - demiurg_spb   Цитата(dxp @ Nov 28 2009, 12:39) Но я бы ...   Nov 28 2009, 20:47
|- - Злодей   Кодconst uint32_t X_SIZE = 320; const uint32_t Y_S...   Nov 28 2009, 20:57
||- - demiurg_spb   Цитата(Злодей @ Nov 28 2009, 23:57) А мож...   Nov 28 2009, 21:51
|- - sonycman   Цитата(dxp @ Nov 28 2009, 13:39) Кодstati...   Nov 29 2009, 09:26
- - Rst7   На самом деле смысл там такой - если все операнды ...   Nov 28 2009, 11:03
- - sigmaN   Ну uint32_t я намеренно использовал для того, чтоб...   Nov 28 2009, 11:03
|- - SM   Цитата(sigmaN @ Nov 28 2009, 14:03) Ну та...   Nov 28 2009, 11:59
- - Andron_   ЦитатаНу так а на другом компиляторе, где long буд...   Nov 28 2009, 11:12
- - sigmaN   Цитатав компиляторов для настольных ПК 64 бита - э...   Nov 28 2009, 12:05
- - Genadi Zawidowski   Цитатаесли операндов несколько... компилятор опред...   Nov 28 2009, 12:23
- - Andron_   гмммммм... ну ваще-то да... как-то оно так.   Nov 28 2009, 12:44
- - sigmaN   ЦитатаВсе выражение разбивается на эти примитивы в...   Nov 29 2009, 01:56
- - dxp   Цитата(demiurg_spb @ Nov 29 2009, 02:47) ...   Nov 29 2009, 15:13
- - baralgin   dxp Хм, а если С без плюсов?. Статический массив к...   Nov 29 2009, 17:21
|- - dxp   Цитата(baralgin @ Nov 29 2009, 23:21) dxp...   Nov 30 2009, 04:40
- - sigmaN   Ну по-моему бе плюсов там идёт глобальная линковка...   Nov 29 2009, 20:06
- - baralgin   sigmaN Скорее всего моя терминология хромает, я им...   Nov 29 2009, 20:16
- - sigmaN   аа, об этом я уже как-то упоминал. Не собирается(...   Nov 29 2009, 20:28
- - baralgin   dxp в привидённом выше примере static не спасает. ...   Nov 30 2009, 08:29
|- - demiurg_spb   Цитата(baralgin @ Nov 30 2009, 11:29) Я о...   Dec 1 2009, 06:47
- - baralgin   Цитата(demiurg_spb @ Dec 1 2009, 08:47) В...   Dec 1 2009, 08:17


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

 


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


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