|
Синтаксические несуразности C |
|
|
|
May 25 2012, 11:32
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
В условных конструкциях и циклах между оператором и скобками обычно ставят пробел: Код if () ... for () ... В функциях обычно пробел не ставят: Код foo(); Мне показалось это нелогичным. И я уже переправил некоторые свои исходники, добавил пробелы. Как вдруг обнаружилось, что в макрофункции пробел вообще недопустим! Код #define FOO() ... Пришлось возвращаться к отброшенному. Мне это не нравится! Собственно, вот и весь сказ. Вопросов не имею. Кроме одного - а чем вам еще не нравится синтаксис языка C?
|
|
|
|
|
May 25 2012, 12:01
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(ViKo @ May 25 2012, 15:32)  В условных конструкциях и циклах между оператором и скобками обычно ставят пробел: Код if () ... for () ... В функциях обычно пробел не ставят: Код foo(); Мне показалось это нелогичным. И я уже переправил некоторые свои исходники, добавил пробелы. Как вдруг обнаружилось, что в макрофункции пробел вообще недопустим! Однообразие достигается просто - не ставьте НИГДЕ пробелов между оператором и относящимися к нему скобками, и будет вам щастье.  Т.е. операторы for(), if(), while(), switch() допускают слитное написание, под стать функциям.
|
|
|
|
|
May 25 2012, 12:02
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(ViKo @ May 25 2012, 15:32)  И я уже переправил некоторые свои исходники, добавил пробелы. На этот случай есть автоформаттеры типа Astyle. Зачем делать тупую работу? Пусть машина думает. И вообще, пробелы перед скобками - это какое-то редкое извращение.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 26 2012, 17:15
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(haker_fox @ May 25 2012, 17:40)  Не всегда следует делать все так, как рекомендуют авторитеты. Необходимо иметь собственное мнение. В противном случае прогресс остановится Мне кажется, что лучше обратить внимание на четкие и грамотные комментарии, чем на форматирование текста... Хотя и оно играет немаловажную роль) С комментариями у меня все в порядке. Да и со стилем написания тоже. Так, несколько моментов душу бередят. Например, когда использовать /* ... */, а когда //. Делать ли пробелы в операторе for (i = a + b, i < 100, i = i + 10).
|
|
|
|
|
May 26 2012, 17:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(ViKo @ May 26 2012, 21:15)  Например, когда использовать /* ... */, а когда //. // лучше избегать в #define - некоторые препроцессоры таких вольностей не любят. Цитата(ViKo @ May 26 2012, 21:15)  Делать ли пробелы в операторе for (i = a + b, i < 100, i = i + 10). ИМХО, делать, но только не перед скобками.
|
|
|
|
|
May 27 2012, 04:46
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ May 26 2012, 22:19)  ИМХО, делать, но только не перед скобками. А чего так? Я ставлю, и для меня это лишний быстрый признак, что сиё не функция. Цитата(ViKo @ May 25 2012, 16:32)  Мне показалось это нелогичным. Не пойму, что конкретно нелогичное? Дайте плиз ссыль на описание этой нелогичности. Из ветки неясно.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
May 27 2012, 07:15
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(GetSmart @ May 27 2012, 07:46)  Не пойму, что конкретно нелогичное? Дайте плиз ссыль на описание этой нелогичности. Из ветки неясно. Хочу, чтобы мое желание писать грамотно по-русски не вступало в противоречия с правилами синтаксиса C. http://ru.wikipedia.org/wiki/%D0%9F%D1%80%...%B1%D0%B5%D0%BBЦитата Правила постановки пробела рядом со знаками препинания 1. В русскоязычном наборе пробел ставится: ... с внешней стороны скобок и кавычек; ... Цитата(=AK= @ May 27 2012, 09:52)  У него БНФ ненормально распухшая, этим все сказано. Сказано недостаточно, растолкуйте. Я знаю только Белорусский Народный Фронт, да и то, скорее, усохший, чем распухший.
|
|
|
|
|
May 27 2012, 09:16
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(ViKo @ May 27 2012, 16:45)  Сказано недостаточно, растолкуйте. Форма Бэкуса-Наура используется для формального описания синтаксиса языков программирования. Простые и логичные языки, такие как Форт, Паскаль, Модула и пр., имеют краткую БНФ, в результате их легко осваивать и не возникает путаницы и непоняток при использовании. Языки типа С, PL1 и т.п. имеют сложную БНФ поскольку их синтаксис не очень последователен и логичен, в нем много "информационного шума".
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|