Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 29.07.2013, 11:34  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
dosikus, я за то, чтобы сначала человек выучил по-человечески основы языка программирования, и лишь потом начинал пользоваться всякими прибамбасами. А то, понимаешь, начнет сразу использовать динамические массивы или еще какую "фишку", и где-нибудь в очередном проекте сядет в лужу, когда у него "внезапно" кончтится стек или еще что-нибудь эдакое произойдет!
А кто то озвучил что нужно все и сразу? Можно и без динамических массивов и без структур и без указателей.
Вот только типы данных -основное, без которого дальнейшее продвижение малоэффективно,
если вообще возможно...
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 29.07.2013, 11:40  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от dosikus Посмотреть сообщение
типы данных -основное, без которого дальнейшее продвижение малоэффективно
Как я уже говорил, типы вроде uint8_t, применяются редко: лишь при обмене бинарной информации или жестком распределении памяти. Использование бинарных форматов для обмена информации считается моветоном, как и ручное управление памятью. Поэтому все-таки лучше такие типы не использовать: пусть компилятор сам решает, что лучше для вашей архитектуры.
Ну, а в случае микроконтроллеров, конечно, можно и этими типами пользоваться. Лично я же особой разницы не вижу: хоть int8_t напиши, хоть char — на большинстве современных архитектур это будет восьмибайтное целое.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 29.07.2013, 11:45  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
не вижу: хоть int8_t напиши, хоть char — на большинстве современных архитектур это будет восьмибайтное целое.
Зря не видишь .
int8_t - знаковое целое 8 бит - и это однозначно
char - зависит от компилятора и не всегда оно и беззнаковое и не всегда 8 бит.
Цитата:
Поэтому все-таки лучше такие типы не использовать: пусть компилятор сам решает, что лучше для вашей архитектуры.
Серьезно?
nahimovv же выше приводил что выходит если отдаться компилятору...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 29.07.2013 в 11:50.
dosikus вне форума  
Непрочитано 29.07.2013, 11:58  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
А "керниганоритчевский" С — устоявшийся стандарт, и понять его может каждый, кто С изучал.
взял как начинающий пример из "керниганоритчера":
Код:
 #DEFINE  LOWER 0/* LOWER LIMIT OF TABLE */
 #DEFINE  UPPER 300  /* UPPER LIMIT */
 #DEFINE  STEP  20  /* STEP SIZE */
 MAIN () /* FAHRENHEIT-CELSIUS TABLE */
 {
 INT FAHR;
FOR (FAHR =LOWER; FAHR ‹= UPPER; FAHR =FAHR + STEP)
  PRINTF("%4D %6.1F\N", FAHR, (5.0/9.0)*(FAHR-32));
 }
винавр - не работает, наверное другой стандарт был
Цитата:
../TestKernigan.c:1:3: error: invalid preprocessing directive #DEFINE
oleg110592 вне форума  
Непрочитано 29.07.2013, 11:59  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от oleg110592 Посмотреть сообщение
винавр - не работает, наверное другой стандарт был
Или скопипастил с ошибками либо регистр смени.
Часом не с OCR копипастишь ?


ЗЫ регистр смени и в define и в for да и везде. Это не K&R косяк а редакторов.
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 29.07.2013 в 12:05.
dosikus вне форума  
Непрочитано 29.07.2013, 12:03  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

тут брал: http://lib.ru/CTOTOR/kernigan.txt
у них наверное тогда в пк не было маленьких букв
oleg110592 вне форума  
Непрочитано 29.07.2013, 12:05  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

oleg110592, ясен пень! Как оно будет работать, если регистр верхний?
Кстати, сам замечал: в старых кривых книжках зачем-то набирали сишные тексты заглавными буквами (наверное, бейсико-фортрановское наследие). А между тем C является регистрочувствительным языком!

Вот так правильно:

Код:
#include ‹stdio.h›

#define  LOWER 0/* lower limit of table */
#define  UPPER 300  /* upper limit */
#define  STEP  20  /* step size */
int main(int argc, char **argv){
	int fahr;
	for(fahr =LOWER; fahr ‹= UPPER; fahr =fahr + STEP)
	printf("%4d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
	return 0;
}
Компиляем:
Код:
gcc 11.c -Wall -Werror -o fahr
запускаем:
Код:
./fahr 
   0  -17.8
  20   -6.7
  40    4.4
  60   15.6
  80   26.7
 100   37.8
 120   48.9
 140   60.0
 160   71.1
 180   82.2
 200   93.3
 220  104.4
 240  115.6
 260  126.7
 280  137.8
 300  148.9
__________________
Союз Советских Социалистических Округов Северной Америки

Последний раз редактировалось eddy; 29.07.2013 в 12:11.
eddy вне форума  
Непрочитано 29.07.2013, 12:10  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

oleg110592,
Кстати рекомендую тыркаться не в АВР студии а поставить IDE типа Codeblocks или
DEV-CPP . Создавая консольноые приложения , но не С++ а просто С .
Выхлоп в консоль и дебаг , весьма удобно.
Блин eddy уже опередил с линухом
Миниатюры:
Нажмите на изображение для увеличения
Название: 2013-07-29_121235.png
Просмотров: 42
Размер:	82.0 Кб
ID:	50143  
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 29.07.2013 в 12:14.
dosikus вне форума  
Непрочитано 29.07.2013, 12:10  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Как оно будет работать, если регистр верхний?
там не только это не будет работать - tempora где-то ранее пояснял.
а char там уже давно было написано может быть разным:
Код:
 Таблица 1
  ---------------------------------------------------------
              !
   DEC PDP-11   HONEYWELL    IBM 370     INTERDATA  !
              6000          8/32     !
              !
       ASCII       ASCII       EBCDIC      ASCII    !
              !
    CHAR     8-BITS      9-BITS      8-BITS      8-BITS   !
    INT     16          36       32         32       !
    SHORT    16          36       16         16       !
    LONG     32          36       32         32       !
    FLOAT    32          36       32         32       !
    DOUBLE   64          72       64         64       !
              !
  ---------------------------------------------------------
oleg110592 вне форума  
Непрочитано 29.07.2013, 12:17  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Оптимальный старт в программировании МК на С

Сообщение от eddy Посмотреть сообщение
Как я уже говорил
И что толку с этого?
Цитата:
типы вроде uint8_t, применяются редко
Кто сказал? Источник изысканий можно? Или от фонаря?
Исходники STM8, STM32 и др. просто пестрят этими переобъявлениями!
int'ы ведь тоже могут быть разными, так зачем заранее засирать себе мозги неопределённостью!?
Цитата:
Поэтому все-таки лучше такие типы не использовать: пусть компилятор сам решает, что лучше для вашей архитектуры.
Поэтому все-таки лучше не давать дурных советов, особенно если сам в этом не разбираешься.
nahimovv вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимальный лазерник для ЛУТ Kabron Делимся опытом 187 31.05.2016 10:51
Оптимальный привод тележки весом 200кг d-f-m Производственное оборудование 18 12.07.2010 00:29
[Решено] Оптимальный коттеджный домофон LAVR12 Автоматика и аппаратура связи 0 22.04.2010 20:17
О программировании AVR на C++ neiver Микроконтроллеры, АЦП, память и т.д 55 24.03.2010 19:33
Оптимальный ламинатор для ЛУТ snakesoft Делимся опытом 7 13.01.2010 22:41


Часовой пояс GMT +4, время: 08:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot