|
|
  |
Не нашел .h файл в IAR с описанием uint8_t |
|
|
|
Oct 4 2007, 11:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(prottoss @ Oct 4 2007, 13:29)  он длинно пишется :-) - unsinged short int - и я переживаю за свою мультимедийную клавиатуру Тогда int в этом явно лишнее - просто unsinged short хотя лично я предпочитаю "новый" тип ushort. Типы вроде uint16_t достаточно непривычны по сравнению с классическими, но типы вроде uint_least16_t, uint_fast16_t следует признать очень полезными.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 4 2007, 11:51
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(dxp @ Oct 4 2007, 17:33)  Чуть-чуть наоборот.  ну да, наоборот char<=short<=int<=long. Цитата(prottoss @ Oct 4 2007, 17:35)  Это совсем не аргумент;-) Я посмеялся, когда прочитал и посмотрел таблицу. А почему в ней нет Марк2? В таблице динозавры. Документ датирован 1995 годом. Я же имел ввиду современные платформы. Так вы мне ответите? Отвечу. Читайте внимательно стандарт ANSI C.
|
|
|
|
|
Oct 4 2007, 12:45
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(prottoss @ Oct 4 2007, 18:03)  А что за компилятор? Code Composer Studio вестимо. Вот хидер limits.h из его комплекта. Причем еще обращаю ваше внимание на аннотацию к User's Guide этого CCS. Цитата. Цитата The TMS320C28x™ C/C++ compiler accepts C and C++ code conforming to the International Organization for Standardization (ISO) standards for these languages, and produces assembly language source code for the TMS320C28x device. The compiler supports the 1989 version of the C language.
This user’s guide discusses the characteristics of the C/C++ compiler. It assumes that you already know how to write C/C++ programs. The C Programming Language (second edition), by Brian W. Kernighan and Dennis M. Ritchie, describes C based on the ISO C standard. You can use the Kernighan and Ritchie (hereafter referred to as K&R) book as a supplement to this manual. References to K&R C (as opposed to ISO C) in this manual refer to the C language as defined in first edition of Kernighan and Ritchie’s The C Programming Language. То бишь он в полном соответствии со стандартом разработан
|
|
|
|
|
Oct 4 2007, 12:57
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Хорошо, признаю, был не прав Но мне так и не понятно, отчего Код #define unsigned short int uint16_t хуже Код typedef unsigned short int uint16_t Объясните страждущему, плиз.
--------------------
|
|
|
|
|
Oct 4 2007, 13:02
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(prottoss @ Oct 4 2007, 15:57)  Но мне так и не понятно, отчего Код #define unsigned short int uint16_t хуже Код typedef unsigned short int uint16_t Объясните страждущему, плиз. Да ничем не хуже. Компилятор в любом случае будет контролировать исходный тип. Просто так не элегантно. Дело в том, что некоторые IDE позволяют делать браузинг обьектов, типов, макросов и т. д. и uintХХ_t будет отнесён ими не к типам, как по логике, а к макросам. Только и всего, на мой взгляд.
|
|
|
|
|
Oct 4 2007, 13:20
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(prottoss @ Oct 4 2007, 19:57)  Но мне так и не понятно, отчего Код #define unsigned short int uint16_t хуже Код typedef unsigned short int uint16_t Объясните страждущему, плиз. В данном случае, видимо, большой разницы нет. Но вот попробуйте с помощью дефайна определить тип указателя на функцию? Про другие недостатки уже сказали. Лучше пользоваться теми средствами, которые явно предназначены. А использование макросов препроцессора свести к минимуму.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Oct 4 2007, 13:30
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(prottoss @ Oct 4 2007, 16:09)  Я тоже так подумал в начале спора, но мне почему то дали по шее  Правильно дали  Для начала не: Цитата #define unsigned short int uint16_t а Код #define uint16_t unsigned short int А по существу #define и typedef по разному обрабатываются - один препроцессором, а второй компилятором. Компилятор (или дополнительные утилиты типа lint) могут дополнительно заниматься котролем типов, а препроцессор - нет. Кроме того попробуйте ответить на вопрос есть-ли разница между, например, типами переменных bb и dd: str_t aa, bb; str_d cc, dd; если: typedef char *str_t; // Правильный подход к делу #define str_d char * // Дурной стиль без всякой на то надобности да и еще с побочными эффектами
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 4 2007, 13:40
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(dxp @ Oct 4 2007, 21:20)  В данном случае, видимо, большой разницы нет. Но вот попробуйте с помощью дефайна определить тип указателя на функцию? Про другие недостатки уже сказали. Лучше пользоваться теми средствами, которые явно предназначены. А использование макросов препроцессора свести к минимуму. Я же не говорил, что #define - панацея от всех бед. Я просто показал, как можно сделать, то что просил создатель ветки... А мне начали втыкивать про разрядность типов  Цитата(zltigo @ Oct 4 2007, 21:30)  Кроме того попробуйте ответить на вопрос есть-ли разница между, например, типами переменных bb и dd: str_t aa, bb; str_d cc, dd; если: typedef char *str_t; // Правильный подход к делу #define str_d char * // Дурной стиль без всякой на то надобности да и еще с побочными эффектами Наверное есть, они же в итоге разных типов - bb типа str_t, а dd типа char *
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|