Size: a a a

2020 August 02

KW

Konstantin Wilhelm in ru_ASUTP
Davydov Denis
или, что более вероятно, в коде есть пару дефайнов типа
#define TRUE 1
#define FALSE 0

и условие в коде

if (val == TRUE) enablePin();
else disablePin();
Да наверное вы правы, и без этой проверки не будет работать.
источник

В

Витька Корнеев... in ru_ASUTP
Davydov Denis
есть такое, но он содержит минимально необходимый набор инструментов чтобы можно было комфортно работать с низкоуровневым железом... я с этим свыкся, и уже альтернатив не представляю
не считаю архарикой, а считаю языком с широкими возможностями
источник

DD

Davydov Denis in ru_ASUTP
я бы ваще весь цикл как-то так бы написал

for (i = 0; i < 8; i++) {
 digitalWrite(dataPin, (val >> (bitOrder == LSBFIRST) ? i : (7 - i)) & 1);
}
источник

DD

Davydov Denis in ru_ASUTP
компактно, работает в любом случае правильно, но не очень наглядно... но это уже претензия к самому Си...
источник

KW

Konstantin Wilhelm in ru_ASUTP
Витька Корнеев
не считаю архарикой, а считаю языком с широкими возможностями
Сам си? Языковые конструкции архаичны, его придумали очень давно. Возможности? Кто бы спорил. Но это как с вендой, кто первым встал, того и тапки.
источник

DD

Davydov Denis in ru_ASUTP
ну или

for (i = 0; i < 8; i++) {
 uint8_t bit = (bitOrder == LSBFIRST) ? i : (7 - i);
 digitalWrite(dataPin, (val >> bit) & 1);
}

более наглядно, но переменная лишняя, но ее компиллер возможно оптимизирует
источник

DD

Davydov Denis in ru_ASUTP
Konstantin Wilhelm
Сам си? Языковые конструкции архаичны, его придумали очень давно. Возможности? Кто бы спорил. Но это как с вендой, кто первым встал, того и тапки.
согласен, и развития у него за последние десятилетия существенного не было, но это возможно и к лучшему, глядя на то, во что с++ превращается
источник

В

Витька Корнеев... in ru_ASUTP
Davydov Denis
я бы ваще весь цикл как-то так бы написал

for (i = 0; i < 8; i++) {
 digitalWrite(dataPin, (val >> (bitOrder == LSBFIRST) ? i : (7 - i)) & 1);
}
надо глянуть что задефайнено под лсбфёрст, мож там тока 0 и 1, тогда компилятор по идее и бит ордер без сравнения переварит правильно
источник

KW

Konstantin Wilhelm in ru_ASUTP
Davydov Denis
я бы ваще весь цикл как-то так бы написал

for (i = 0; i < 8; i++) {
 digitalWrite(dataPin, (val >> (bitOrder == LSBFIRST) ? i : (7 - i)) & 1);
}
Тернаные операторы не для зелёных недопрограмиистов, имха
источник

DD

Davydov Denis in ru_ASUTP
Konstantin Wilhelm
Тернаные операторы не для зелёных недопрограмиистов, имха
ну они частенько сильно сокращают код, главное не переусердствовать с ними, а то Си превращается в Perl :)
источник

KW

Konstantin Wilhelm in ru_ASUTP
Davydov Denis
согласен, и развития у него за последние десятилетия существенного не было, но это возможно и к лучшему, глядя на то, во что с++ превращается
Возможно, что развитие ему больше и не нужно особого, ибо все поставленные задачи выполняет
источник

DD

Davydov Denis in ru_ASUTP
Konstantin Wilhelm
Тернаные операторы не для зелёных недопрограмиистов, имха
и позволяют избавиться от копипасты одного и того же кода, как в вашем примере было, а копипаста однотипного кода - это всегда плохо
источник

KW

Konstantin Wilhelm in ru_ASUTP
Davydov Denis
ну они частенько сильно сокращают код, главное не переусердствовать с ними, а то Си превращается в Perl :)
Не знаю кому как, мне главное в коде его наглядность и понятность, а сколько там строк или места на диске он займет, мне фиолетово.
источник

DD

Davydov Denis in ru_ASUTP
так вот наглядность обратно пропорциональна количеству кода... именно поэтому я и люблю код на js, и ненавижу на java, а еще я люблю делать короткие имена локальных переменных
источник

DD

Davydov Denis in ru_ASUTP
путь их имя и не несет большой смысловой нагрузки, зато она рядом, и я вижу че она делает
источник

В

Витька Корнеев... in ru_ASUTP
Davydov Denis
так вот наглядность обратно пропорциональна количеству кода... именно поэтому я и люблю код на js, и ненавижу на java, а еще я люблю делать короткие имена локальных переменных
пиши на APL !🌚
источник

КП

Крылатый Пегас... in ru_ASUTP
Davydov Denis
согласен, и развития у него за последние десятилетия существенного не было, но это возможно и к лучшему, глядя на то, во что с++ превращается
Плюсы последние ня. С удовольствием на C++17 на мк прогаю.
источник

DD

Davydov Denis in ru_ASUTP
Крылатый Пегас
Плюсы последние ня. С удовольствием на C++17 на мк прогаю.
ну видимо каждому свое :)
источник

КП

Крылатый Пегас... in ru_ASUTP
Davydov Denis
ну видимо каждому свое :)
Дык почти всё можно в компилтайме посчитать, красота.)
источник

KW

Konstantin Wilhelm in ru_ASUTP
Крылатый Пегас
Плюсы последние ня. С удовольствием на C++17 на мк прогаю.
Какие МК используете?
источник