Апирация запятая
- Войдите на сайт для отправки комментариев
Сб, 13/10/2018 - 05:32
Правильно ли я понимаю, что данная канструкцыя имеет право на жизнь?
uint32_t now = millis(); while (Read(), !isReady()) { if (millis() - now > TIMEOUT_I2C_MS) return false; delay(2); } return true;
Read() ничего не отдает, только читает буфер, а isReady читает из этого буфера бит и возвращает true/false. Если устройство не готово в течение TIMEOUT_I2C_MS вся эта функция отдает false. Я пропробовал, вроде работает, но мало ли чо.
чота while жирным не выделился :(
Правильно понимаете.
Более интересен вопрос, как эту операцию использовать в тех местах, где запятая имеет особый смысл, например, в списке параметров, при вызове функции :)
А почему, кстати, "запятая", а не "запитая"?
Спасибо
Более интересен вопрос, как эту операцию использовать в тех местах, где запятая имеет особый смысл, например, в списке параметров, при вызове функции :)
в скобках ставить kaka(a, (b=3, b+1), z);
передасца a, 4, z
Компилятор пропустил - значить имеет право на жизнь. Другой вопрос - делает ли она то, что нужно ;) Похоже что да. Но тайный смысл делея и миллиса рядом не понятен, чтото типа
вроде тоже, но проще во всех смыслах.
ПС. Код вставляется через хер, боролся пробелами
да, так тоже можно, спасиба
в скобках ставить kaka(a, (b=3, b+1), z);
передасца a, 4, z
Не, ну это простейший случай. А вот так? :)
Одно непонятно, зачем так писать? Риторический конечно.
— И вся эта операция
— Ы!
— Почему Ы?
— Чтобы никто не догадался.
Ну, вопрос ведь не в том, чтобы так писать, а в том, чтобы разобраться в тонкостях языка.
Не, ну это простейший случай. А вот так? :)
Вот я всегда исходил из того, что прежде, чем приступать к написанию кода на ЯВУ, следует записать (или, хотя бы представить себе мысленно) его на русском.
Т.е. фрагмент кода на Си является переводом некоторой фразы на русском языке.
Вот мне интересно, как должна звучать исходная русская фраза для строки №8?
всегда исходил из того, что прежде, чем приступать к написанию кода на ЯВУ, следует записать (или, хотя бы представить себе мысленно) его на русском.
Вы когда-нибудь жили долго за границей? Причём в одиночестве, а не в компании своих. Если жили, то может замечали, что вроде и нормально говоришь и всё понимаешь, но всё равно язык чужой. А в какой-то момент вдруг ловишь себя на мысли, что он перестал быть чужим.Это случается в томт момент, когда перестаёшь мысленно переводить на родной язык и обратно, а начинаешь думать на другом языке. Вот как-то так и с ЯВУ. В какой-то момент что-то щёлкает и ты уже думаешь на нём. А когда на нём думаешь, то уже не нуждаешься в переводе с русского.
в скобках ставить kaka(a, (b=3, b+1), z);
передасца a, 4, z
Не, ну это простейший случай. А вот так? :)
настолько далеко моё скудоумие не прастираеца.
Переделал по мотивам Logic.
Вы когда-нибудь жили долго за границей?
ПОлагаю вопрос риторическим. Я невыездной.
Вот как-то так и с ЯВУ. В какой-то момент что-то щёлкает и ты уже думаешь на нём. А когда на нём думаешь, то уже не нуждаешься в переводе с русского.
Вы пытаетесь увести разговор в сторону, а я все еще хочу получить ответ на вопрос в последнем предложении поста №10.
Вы пытаетесь увести разговор в сторону, а я все еще хочу получить ответ на вопрос в последнем предложении поста №10.
Не пытаюсь, просто тот воспринял вопрос как риторический. Но, если он не таковой, то извольте
как должна звучать исходная русская фраза для строки №8?
Никак, т.к. конструкция изначально задумывалась как неопределённая и таковой является. Так что, если русская фраза и должна как-то звучать, то примерно так: «Какой мудак это навертел и что он при этом имел в виду?».
При создании же строчки задача стояла так: «Нужно придумать неприемлемый, неоднозначный пример». Хотя, решение получилось неудачным – излишне навороченным. Достаточно было
Женя! Исходя из последовательности вычислений слева направо получается
Помоги увидеть иное прочтение... торможу.
-------------------------------
через 5 мин: если ты имеешь ввиду то, что запятая после "n = 3" может быть прочитана как знак операции, то это не так, по структуре синтаксического анализатора, который использован в компиляторе С (это который "бизон"). Грамматика использована в праворекурсивной форме и использована контекстная зависимость. То есть, раз нету функции-полиморфа от одного аргумента, то на лексемы мы разделим "запятая-опретор" и "запятая-разделитель" на уровне синтаксического анализа.
Старый спор проектировщиков компиляторов об избежании контекстной зависимости. Невозможно ее полностью избежать. Твой пример решается, но можно придумать сложнее, или задать kaka() - полиморфом. И мы придем к парадоксу.
Это запятая «слева направо», а список параметров функции - последовательность вычислений неопределена (см. ISO/IEC 14882:2017, п. 8.2.5 (стр. 110): «The initialization of a parameter, including every associated value computation and side effect, is indeterminately sequenced with respect to that of any other parameter»)
Компилятор имеет право сгенерировать вычисление аргументов в любой последовательности. Бывает, что он генерирует по-разному в разных контекстах. Наконец, современные компиляторы при генерации кода для многоядерных систем иногда не стесняются вычислять аргументы параллельно. Так что с побочными эффектами у аргументов надо быть осторожнее.
А я вот просто неоднозначность не люблю. Потому и спросил, чтоб узнать, работает ли это так как я думаю.
Компилятор имеет право сгенерировать вычисление аргументов в любой последовательности. Бывает, что он генерирует по-разному в разных контекстах. Наконец, современные компиляторы при генерации кода для многоядерных систем иногда не стесняются вычислять аргументы параллельно. Так что с побочными эффектами у аргументов надо быть осторожнее.
как должна звучать исходная русская фраза для строки №8?
«Какой мудак это навертел и что он при этом имел в виду?».
Ну я, честно говоря, не решился сформулировать свой вопрос в таком виде.)
А что касается перевода, мне кажется, ближе: "Варкалось. Хливкие шорьки..."
Напрасно, я достаточно адекватен для таких формулировок :)))