29.07.2013, 08:11
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Цитата:
|
stdint.h is a header file in the C standard library introduced in the C99 standard library section 7.18 to allow programmers to write more portable code by providing a set of typedefs that specify exact-width integer types, together with the defined minimum and maximum allowable values for each type, using macros[1] . This header is particularly useful for embedded programming which often involves considerable manipulation of hardware specific I/O registers requiring integer data of fixed widths, specific locations and exact alignments. stdint.h (for C or C++), and cstdint (for C++) can be downloaded or quickly created if they are not provided.
|
http://en.wikibooks.org/wiki/C_Progr...rence/stdint.h
корявый перевод гуглом:
Цитата:
|
stdint.h располагается заголовок файла в стандартной библиотеки языка Си введены в стандарт C99 разделе библиотеки 7.18, чтобы позволить программистам писать код более переносимым, предоставляя набор определений типов, которые определяют точную ширину целых типов, а также определены минимальные и максимальные допустимые значений для каждого типа, с помощью макросов [1]. Этот заголовок особенно полезно для программирования встроенных систем, которые часто влечет за собой значительные манипуляции конкретных аппаратных регистров ввода / вывода требующих целое данные фиксированная ширина, конкретные места и точного выравнивания. stdint.h (для C или C + +), а cstdint (для C + +) может быть загружена или быстро создать, если они не предусмотрены.
|
на Атмел, смотря разные AN, вообще равняться что-то тяжело (Atmel: AVR124):
Код:
|
typedef unsigned char U8 ;
typedef unsigned short U16;
typedef unsigned char Uchar;
typedef unsigned long int Uint32;
unsigned int gAdcOffset = 0;
uint32_t gAdcSyncMeasValue = 0;
#define uint32_t unsigned long
#define uint16_t unsigned int
#define uint8_t unsigned char |
три последние строчки мне непонятны - оно уже вроде было определено
|
|
|
|
29.07.2013, 08:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от tempora
|
eddy, любезный, цитата будет, нет?
|
Цитата чего? K&R?
А ничего, что "C-99" — это надстройка над "классическими" сями. Недавно, вон, вообще C11 появились. Там такое есть, о чем K&R даже и не думали!
Я не считаю правильным называть C-99 или C11 сями. С — это классические, "керниганоричевские" С. А эти уж называйте, как положено. Все-таки, вы когда компиляете, ставите флаги: например, без "-std=gnu99" ваш gcc не врубится, что текст программы на C-99, а не классических сях!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
29.07.2013, 08:47
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
Выше же сказали, коротко и ясно: в стандарте С нет типов int8_t, uint16_t и т.п.
А еще стандарт не гарантирует, что char — восьмибитное целое, или int — 32-битное. Кроме того, есть такие вещи, как порядок следования байтов в многобайтных типах (как минимум три известных архитектуры). И это тоже стандартом не регулируется!
|
Дык речь то не о каком то "классическом стандарте".
Здесь попытка протереть глаза нубам, что бы юзали вещи уже ставшие стандартом и не попадали на классические же грабли.
__________________
Осторожно , злой кот
|
|
|
|
29.07.2013, 09:14
|
|
Гражданин KAZUS.RU
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
ставите флаги: например, без "-std=gnu99"
|
раньше не задумывался на каком си я пишу, оказывается авр студия за меня этот флаг поставила:
Цитата:
|
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=7372800UL -Os ...
|
так что, думаю надо соответствовать стандарту
|
|
|
|
29.07.2013, 09:57
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
Я не считаю правильным называть C-99 или C11 сями. С — это классические, "керниганоричевские" С. А эти уж называйте, как положено.
|
Это всё от элементарной тупости и глупости!
Цитата:
|
C99 — современный стандарт языка программирования Си. Определен в ISO/IEC 9899:1999, современная версия - ISO/IEC 9899:1999/Cor 3:2007 от 2007-11-15. Является развитием стандарта C90.
|
Если для вас CV является стандартом и богом в одном лице, то это ваши проблемы - к доктору.
|
|
|
|
29.07.2013, 10:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от oleg110592
|
авр студия за меня этот флаг поставила
|
А вот делали бы без "студий", знали бы
Сообщение от dosikus
|
Дык речь то не о каком то "классическом стандарте".
|
Ну, все равно эти типы стоит использовать лишь тогда, когда действительно нужна жестокая переносимость (например, при обмене информацией в бинарных структурах). Правда, туда же еще и всякие функции вроде htons запихивать надо будет, чтобы наверняка и на big-endian, и на little-endian и даже на mid-endian все работало, как надо.
Сообщение от nahimovv
|
Если для вас CV является стандартом и богом в одном лице, то это ваши проблемы - к доктору.
|
Вам и советую идти к доктору! Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С. А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
29.07.2013, 11:11
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С. А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
|
То есть ты так же за то ,
что для новичков нужны какие то тепличные условия ,
что то попроще из темы облегчалок и только потом приводить к стандарту?
Я лично против. Или сразу к стандартам или ни как...
__________________
Осторожно , злой кот
|
|
|
|
29.07.2013, 11:13
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от eddy
|
Если новичок что-то спрашивает, то обычно ему отвечают в рамках классического С.
|
Бред! Нет классического и неклассического Си. Есть старые стандарты Си и новые, но это всё стандарты Си, нравится вам это или нет.
И новичкам не положено глаголить
Сообщение от eddy
|
Я не считаю правильным
|
по статусу! Так как знаний - ноль, скромнее нужно быть и соблюдать цветовую субординацию штанов.
Цитата:
|
А С99 уже обладает всякими прибамбасами. Причем многие из них очень даже вредны (например, динамические массивы).
|
И что? Незнание Си не освобождает от крэш-трэш-ответственности.
Последний раз редактировалось nahimovv; 29.07.2013 в 11:16.
|
|
|
|
29.07.2013, 11:16
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
Сообщение от dosikus
|
Или сразу к стандартам или ни как...
|
100% !
Есть желание учиться-осваивать - пожалуйста, нет - пусть идёт лесом... грибы собирает...
|
|
|
|
29.07.2013, 11:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,630
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Оптимальный старт в программировании МК на С
dosikus, я за то, чтобы сначала человек выучил по-человечески основы языка программирования, и лишь потом начинал пользоваться всякими прибамбасами. А то, понимаешь, начнет сразу использовать динамические массивы или еще какую "фишку", и где-нибудь в очередном проекте сядет в лужу, когда у него "внезапно" кончтится стек или еще что-нибудь эдакое произойдет!
Сообщение от nahimovv
|
Нет классического и неклассического Си
|
ОК, пусть это будут разные стандарты. Но, например, тот же C11 — совсем новая штука, не факт, что многие в нем разбираются. А "керниганоритчевский" С — устоявшийся стандарт, и понять его может каждый, кто С изучал. Вот я это все к тому, что пользуйтесь чем угодно, но не надо новомодные веяния выдавать за классику!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:04.
|
|