ViKo 1 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба В условных конструкциях и циклах между оператором и скобками обычно ставят пробел: if () ... for () ... В функциях обычно пробел не ставят: foo(); Мне показалось это нелогичным. И я уже переправил некоторые свои исходники, добавил пробелы. Как вдруг обнаружилось, что в макрофункции пробел вообще недопустим! #define FOO() ... Пришлось возвращаться к отброшенному. Мне это не нравится! Собственно, вот и весь сказ. Вопросов не имею. Кроме одного - а чем вам еще не нравится синтаксис языка C? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 43 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба В условных конструкциях и циклах между оператором и скобками обычно ставят пробел: if () ... for () ... В функциях обычно пробел не ставят: foo(); Мне показалось это нелогичным. И я уже переправил некоторые свои исходники, добавил пробелы. Как вдруг обнаружилось, что в макрофункции пробел вообще недопустим! Однообразие достигается просто - не ставьте НИГДЕ пробелов между оператором и относящимися к нему скобками, и будет вам щастье. :) Т.е. операторы for(), if(), while(), switch() допускают слитное написание, под стать функциям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 23 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба И я уже переправил некоторые свои исходники, добавил пробелы. На этот случай есть автоформаттеры типа Astyle. Зачем делать тупую работу? Пусть машина думает. И вообще, пробелы перед скобками - это какое-то редкое извращение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба Однообразие достигается просто... Нет, на это я пойти не могу! Буду писать, как классики K&R учили. Утирая слезы и сопли. :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба Одно маленькое замечание: это не относится к синтаксису. Равно как и к чему-либо другому в языке C. С точки зрения языка это наш ascii-art . Маленькое уточнение — (отсутствующий) пробел в #define относится к синтаксису препроцессора. Все остальные упомянутые пробелы (как и табуляции, переводы строк в тех же местах) не имеют отношения к синтаксису. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 25 мая, 2012 Опубликовано 25 мая, 2012 · Жалоба Нет, на это я пойти не могу! Буду писать, как классики K&R учили. Утирая слезы и сопли. :crying: Не всегда следует делать все так, как рекомендуют авторитеты. Необходимо иметь собственное мнение. В противном случае прогресс остановится :rolleyes: Мне кажется, что лучше обратить внимание на четкие и грамотные комментарии, чем на форматирование текста... Хотя и оно играет немаловажную роль) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 26 мая, 2012 Опубликовано 26 мая, 2012 · Жалоба Не всегда следует делать все так, как рекомендуют авторитеты. Необходимо иметь собственное мнение. В противном случае прогресс остановится :rolleyes: Мне кажется, что лучше обратить внимание на четкие и грамотные комментарии, чем на форматирование текста... Хотя и оно играет немаловажную роль) С комментариями у меня все в порядке. Да и со стилем написания тоже. Так, несколько моментов душу бередят. Например, когда использовать /* ... */, а когда //. Делать ли пробелы в операторе for (i = a + b, i < 100, i = i + 10). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 26 мая, 2012 Опубликовано 26 мая, 2012 · Жалоба Например, когда использовать /* ... */, а когда //. // лучше избегать в #define - некоторые препроцессоры таких вольностей не любят. Делать ли пробелы в операторе for (i = a + b, i < 100, i = i + 10). ИМХО, делать, но только не перед скобками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба ИМХО, делать, но только не перед скобками. А чего так? Я ставлю, и для меня это лишний быстрый признак, что сиё не функция. Мне показалось это нелогичным. Не пойму, что конкретно нелогичное? Дайте плиз ссыль на описание этой нелогичности. Из ветки неясно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 17 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба чем вам еще не нравится синтаксис языка C? У него БНФ ненормально распухшая, этим все сказано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба Не пойму, что конкретно нелогичное? Дайте плиз ссыль на описание этой нелогичности. Из ветки неясно. Хочу, чтобы мое желание писать грамотно по-русски не вступало в противоречия с правилами синтаксиса C. http://ru.wikipedia.org/wiki/%D0%9F%D1%80%...%B1%D0%B5%D0%BB Правила постановки пробела рядом со знаками препинания 1. В русскоязычном наборе пробел ставится: ... с внешней стороны скобок и кавычек; ... У него БНФ ненормально распухшая, этим все сказано. Сказано недостаточно, растолкуйте. Я знаю только Белорусский Народный Фронт, да и то, скорее, усохший, чем распухший. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 27 мая, 2012 Опубликовано 27 мая, 2012 (изменено) · Жалоба Хочу, чтобы мое желание писать грамотно по-русски не вступало в противоречия с правилами синтаксиса C. Это называется "смешалось в кучу кони, люди". Грамотно писать по-русски программы на Си Ваш любимый пробел многие используют для зрительного разделения отдельных элементов языка. Его наличие гарантированно ускоряет чтение программы и быструю классификацию разнотипных её элементов. Собственно это есть оформление кода, которое компилятору "по барабану". На этот счёт понасоздавали и статей и глав в книгах. Но вот о введении приоритетов синтаксиса русяза в тексты компутерного языка, который принципиально во многом непохож на языки общения людей - это уже оригинально. Это даже может значить, что предложение исходит совсем не от программиста. Т.к. программер-то знает что оформление проги помогает быстро понять алгоритм и в оформлении нужны другие правила. Изменено 27 мая, 2012 пользователем GetSmart Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба А чего так? Я ставлю, и для меня это лишний быстрый признак, что сиё не функция. Отсутствие пробела позволяет воспринимать конструкции типа for(...) как единое целое. Операторов в 'C' не так много, чтобы путать их с функциями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба ...как единое целое. Не совсем ясная формулировка. Но не думаю, что в ней есть что-то большее, чем удобство конкретного кодописателя (читателя). Другому с пробелом будет более удобно для понимания и это его полное право. Разрешены два (и даже более) варианта. А какой лучше в целом выявит разве что статистика, да и то, только в сугубо показательном виде. Но никак не в указательном. А то так и до расизма недалеко :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 17 27 мая, 2012 Опубликовано 27 мая, 2012 · Жалоба Сказано недостаточно, растолкуйте. Форма Бэкуса-Наура используется для формального описания синтаксиса языков программирования. Простые и логичные языки, такие как Форт, Паскаль, Модула и пр., имеют краткую БНФ, в результате их легко осваивать и не возникает путаницы и непоняток при использовании. Языки типа С, PL1 и т.п. имеют сложную БНФ поскольку их синтаксис не очень последователен и логичен, в нем много "информационного шума". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться