спасибо за подробнейшее объяснение материала.С таким подходом, если не каждый,то многие освоят программирование (в том числе микроконтроллеров) по вашим лекциям
13:47 Язык C - это язык для человеков Язык ассемблера - это ТОЖЕ язык для человеков, так как это всего-лишь по сути своей просто оболочка для машинного кода Машинный код - это ЯЗЫК ДЛЯ ПРОЦЕССОРА. Никакой процессор не понимает что-либо кроме машинного кода, т.к. машинный код - это код, который можно выполнить без каких-либо преобразований, а C и ассемблер + всё, что выше - надо компилировать Я только начал смотреть данный курс, а уже понимаю, что возможно тут и есть что-то полезное, но это "полезное" скрыто за огромной кучей воды, которая будет полезна только тому, кто только сел за программирование
Что касается переменных, я бы еще добавил, что локальные еще допустимо обзывать буквами, но глобальные должны быть понятные и отображать суть или функцию которые они выполняют. Например: pwm_duty- такое название сразу даст представление о чем идет речь нежели какая нибудь - p
Обнаружил интересную странность в AtmelStudio под 8бит микроконтроллер тип float=double=long double и занимает 4байта, по крайней мере в тестовой программе по определению разрядности переменных, компилятор повел себя именно так. Это конечно к данному уроку, под Винду, не имеет никакого отношения. Так, просто к слову, что у каждой среды IDE, эти типы могут иметь различную разрядность и на этом, начинающим, можно неплохо спотыкнуться.
На видео о микроконтроллерах что изучалось на уроках, то показывалась на практике. Можно и здесь так сделать, а то все объяснения и примеры, можно например через несколько уроков написать какую нибудь работающаю программу, в которую что то вводиться, что то считается, вычисляется или рисуется, типа практическое занятие?
Так оно и есть, практика и здесь после теории. Просто Вы, видимо, не все уроки ещё посмотрели. А вообще цель данного курса - подтянуть язык у посетителей (в переносном смысле, в смысле язык программирования) и данная цель почти уже достигнута, что ощутимо по почти прекратившимся вопросам в личку именно по причине незнания языка СИ.
не совсем понятно "Ещё существует тип данных bool. Это целочисленный тип данных, так как диапазон допустимых значений - целые числа от 0 до 255". он ведь 1 или 0, что значит до 255?
unit8_t это unsigned char разница только в том, что он в любом компиляторе 8 бит и без знака минуса эти яйцеголовые идиоты как обычно понаклепают 100500 штук всяких компиляторов, которые кто хочет, так и трактует инты потом придумали новые типы, когда кросплатформенный код перестал правильно работать
@@narodstream552 недопустимо. В апострофах исключительно символы (даже если их несколько) и работают они принципиально иначе. "str" вернёт адрес, по которому располагается str, а 'str' - непосредственно значение. Они не взаимозаменяемы.
Она не может заканчиваться на четное число. 2 в любой степени это четное число, но счет начинается с нуля, поэтому мы отнимаем единицу, что дает нечетное число. ununsigned char = 2^8 = 256 - 1 = 255
Хотелось поумничать по поводу int, который логично было бы видеть двухбайтным (википедия и некоторые компиляторы именно так и считают, что естественно - зачем два идентичных типа). Но, оказалось, что "наш" gcc таки считает инт 4-х байтным. char, вроде таки однобайтный. Хотя, сколько места реально он занимает в ОЗУ современного PC - это вопрос...
стандарт языка говорит что int гарантированно вмещает 16 битное число, не меньше. то, что на каких то архитектурах и компиляяторах он 32 бита, это вы можете использовать на свой страх и риск. Может случиться когданибудь что инт скомпилируется в 16 бит и вы словите переполнение в работе. Поэтому если вам гарантированно разместить 32 битное число то нужен Лонг. А вообще, для того и придуманы переносимые типы int8_t, uint32_t и тд.
спасибо за подробнейшее объяснение материала.С таким подходом, если не каждый,то многие
освоят программирование (в том числе микроконтроллеров) по вашим лекциям
Спасибо за уроки, почаще бы выходили.
Спасибо ! Очень позновательно и понятно , вот чаще ролики бы выходили... это было бы супер !
Простите но почаще не могу. Да и вряд ли где есть почаще.
Хвала вам)
13:47
Язык C - это язык для человеков
Язык ассемблера - это ТОЖЕ язык для человеков, так как это всего-лишь по сути своей просто оболочка для машинного кода
Машинный код - это ЯЗЫК ДЛЯ ПРОЦЕССОРА.
Никакой процессор не понимает что-либо кроме машинного кода, т.к. машинный код - это код, который можно выполнить без каких-либо преобразований, а C и ассемблер + всё, что выше - надо компилировать
Я только начал смотреть данный курс, а уже понимаю, что возможно тут и есть что-то полезное, но это "полезное" скрыто за огромной кучей воды, которая будет полезна только тому, кто только сел за программирование
Что касается переменных, я бы еще добавил, что локальные еще допустимо обзывать буквами, но глобальные должны быть понятные и отображать суть или функцию которые они выполняют. Например: pwm_duty- такое название сразу даст представление о чем идет речь нежели какая нибудь - p
Спасибо!
Спасибо)
Обнаружил интересную странность в AtmelStudio под 8бит микроконтроллер тип float=double=long double и занимает 4байта, по крайней мере в тестовой программе по определению разрядности переменных, компилятор повел себя именно так. Это конечно к данному уроку, под Винду, не имеет никакого отношения. Так, просто к слову, что у каждой среды IDE, эти типы могут иметь различную разрядность и на этом, начинающим, можно неплохо спотыкнуться.
Хорошие уроки спсб,вы похожи на преподавателя вуза,по подаче материала
Спасибо за уроки, очень понравилось! Возможно ли увеличить шрифт на пару значений?
Прошу растолковать) Что такое "битность" процессора?
Размер одного регистра.
И я уже вроде говорил, что если хотим программировать, то по умолчанию информатику знаем.
@@narodstream552 вектор принят) буду латать дыры)
На видео о микроконтроллерах что изучалось на уроках, то показывалась на практике. Можно и здесь так сделать, а то все объяснения и примеры, можно например через несколько уроков написать какую нибудь работающаю программу, в которую что то вводиться, что то считается, вычисляется или рисуется, типа практическое занятие?
Так оно и есть, практика и здесь после теории. Просто Вы, видимо, не все уроки ещё посмотрели. А вообще цель данного курса - подтянуть язык у посетителей (в переносном смысле, в смысле язык программирования) и данная цель почти уже достигнута, что ощутимо по почти прекратившимся вопросам в личку именно по причине незнания языка СИ.
не совсем понятно "Ещё существует тип данных bool. Это целочисленный тип данных, так как диапазон допустимых значений - целые числа от 0 до 255". он ведь 1 или 0, что значит до 255?
А какая разница между ковычками такими " " и такими ' ' ?
еще хотелось бы в дальнейшем узнать как используется uint8 и подобные
обычно в двойных пишут строки, а в апострофах - отдельные символы. Но допустимо и по-другому.
unit8_t это unsigned char
разница только в том, что он в любом компиляторе 8 бит и без знака минуса
эти яйцеголовые идиоты как обычно понаклепают 100500 штук всяких компиляторов, которые кто хочет, так и трактует инты
потом придумали новые типы, когда кросплатформенный код перестал правильно работать
@@narodstream552 недопустимо. В апострофах исключительно символы (даже если их несколько) и работают они принципиально иначе. "str" вернёт адрес, по которому располагается str, а 'str' - непосредственно значение. Они не взаимозаменяемы.
@Embedded Programmer а в каких реализациях не добавляет? Не встречал что-то таких, по крайней мере в этом веке.
Исправьте: unsigned long long - заканчивается на 6, а не на 5.. Не мудрено запутаться, но справедливости ради:)
Она не может заканчиваться на четное число. 2 в любой степени это четное число, но счет начинается с нуля, поэтому мы отнимаем единицу, что дает нечетное число. ununsigned char = 2^8 = 256 - 1 = 255
Хотелось поумничать по поводу int, который логично было бы видеть двухбайтным (википедия и некоторые компиляторы именно так и считают, что естественно - зачем два идентичных типа). Но, оказалось, что "наш" gcc таки считает инт 4-х байтным. char, вроде таки однобайтный. Хотя, сколько места реально он занимает в ОЗУ современного PC - это вопрос...
стандарт языка говорит что int гарантированно вмещает 16 битное число, не меньше. то, что на каких то архитектурах и компиляяторах он 32 бита, это вы можете использовать на свой страх и риск. Может случиться когданибудь что инт скомпилируется в 16 бит и вы словите переполнение в работе. Поэтому если вам гарантированно разместить 32 битное число то нужен Лонг. А вообще, для того и придуманы переносимые типы int8_t, uint32_t и тд.
Первый!!!))
Слишком мелкий текст!
С телефона смотреть очень напряжно.
на смарт часах попробуйте...
long double
128 байт
win 10 64-bit
gcc.exe (Rev5, Built by MSYS2 project) 10.3.0
Спасибо!