|
Настройка GNU toolchain from ARM для STM32, типы данных |
|
|
|
Jan 21 2014, 07:35
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Какие опции задать компилятору, что бы тип uint32_t соответствовал типу unsigned int, а не unsigned long ? В данный момент тип uint32_t приводит по ссылке в Код #if __have_long32 typedef signed long int32_t; typedef unsigned long uint32_t; #define __int32_t_defined 1
|
|
|
|
|
 |
Ответов
|
Jan 21 2014, 07:50
|

Местный
  
Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978

|
Цитата(scifi @ Jan 21 2014, 11:44)  Зачем? unsigned int и unsigned long - это одинаковые типы на ARM, просто название разное. К тому же вы можете просто руками поправить хедер stdint.h (или что он там ещё включает). Но зачем? код вида Код uint32_t i; printf("%i\n",i); приводит к варнингам Код warning: format '%i' expects argument of type 'int', but argument 2 has type 'uint32_t' [-Wformat=]
|
|
|
|
|
Jan 21 2014, 09:42
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(k000858 @ Jan 21 2014, 09:50)  Код warning: format '%i' expects argument of type 'int', but argument 2 has type 'uint32_t' [-Wformat=] Угу. Чтобы избежать подобных казусов специально для типов из stdint.h в файле inttypes.h объявлены и спецификаторы форматаКод uint32_t i; printf("%" PRIu32 "\n",i); Да, несколько уродует форматную строку, но 100% переносимо.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
k000858 Настройка GNU toolchain from ARM для STM32 Jan 21 2014, 07:35 scifi К примеру, в lwip эта проблема решается так:
CODE/... Jan 21 2014, 07:57 k000858 Цитата(scifi @ Jan 21 2014, 11:57) К прим... Mar 20 2014, 00:47  scifi Цитата(k000858 @ Mar 20 2014, 04:47) Вот ... Mar 24 2014, 03:35   k000858 Цитата(scifi @ Mar 24 2014, 07:35) У вас ... Mar 24 2014, 04:41    scifi Цитата(k000858 @ Mar 24 2014, 08:41) файл... Mar 24 2014, 05:28     k000858 Цитата(scifi @ Mar 24 2014, 09:28) Ну вот... Mar 24 2014, 05:44      scifi Цитата(k000858 @ Mar 24 2014, 09:44) да п... Mar 24 2014, 06:26      Сергей Борщ Цитата(k000858 @ Mar 24 2014, 07:44) в за... Mar 24 2014, 07:50    mdmitry Цитата(k000858 @ Mar 24 2014, 08:41) ...
... Mar 24 2014, 06:19 VAI k000858, Вы предполагаете, что если Вы напишете
Ко... Jan 21 2014, 09:21 k000858 Цитата(VAI @ Jan 21 2014, 13:21) k000858,... Jan 21 2014, 09:42 k000858 и все таки я не понимаю, почему нет варнинга на
К... Jan 21 2014, 12:29 Golikov A. а есть варнинг на
Кодuint32_t i;
printf(... Jan 21 2014, 16:12 k000858 Цитата(Golikov A. @ Jan 21 2014, 20:12) а... Jan 21 2014, 16:49  scifi Цитата(k000858 @ Jan 21 2014, 20:49) хоте... Jan 21 2014, 17:51 k000858 вопрос остается открытым, не важно откуда я его за... Jan 21 2014, 17:53 Golikov A. варнинг от функции printf, она пытается данный ей ... Jan 21 2014, 18:26 scifi Цитата(Golikov A. @ Jan 21 2014, 22:26) в... Jan 21 2014, 19:26 k000858 Цитата(Golikov A. @ Jan 21 2014, 22:26) н... Jan 22 2014, 03:45  Сергей Борщ Цитата(k000858 @ Jan 22 2014, 05:45) Код... Jan 22 2014, 06:44   k000858 Цитата(Сергей Борщ @ Jan 22 2014, 10:44) ... Jan 22 2014, 07:08    Golikov A. Цитата(k000858 @ Jan 22 2014, 11:08) а, т... Jan 22 2014, 11:44 Golikov A. ну как же не денется, денется конечно же...
просто... Jan 21 2014, 20:14 k000858 варнинга нет, это хорошо )
вы уж простите за мою д... Jan 22 2014, 13:23 scifi Цитата(k000858 @ Jan 22 2014, 17:23) ну т... Jan 22 2014, 15:06  k000858 Цитата(scifi @ Jan 22 2014, 19:06) И я та... Jan 22 2014, 15:12 Mihey_K Не вздумайте править библиотечные хидеры stdint.h,... Jan 26 2014, 02:29 k000858 Цитата(Mihey_K @ Jan 26 2014, 06:29) Не в... Feb 10 2014, 03:51 k000858 Т.е. компилятор пишет варнинги при использовании u... Mar 24 2014, 03:19 Сергей Борщ Цитата(k000858 @ Mar 24 2014, 05:19) хотя... Mar 24 2014, 03:42 k000858 ясно, значит настройки компилятора тут не причем.
... Mar 24 2014, 07:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|