#c
#c
Вопрос:
В приведенном ниже коде:
int main () {cout << "hello world";}
должен ли быть пробел между именем функции и круглой скобкой? Если компилятор исключает что-либо из этого, каково соглашение?
Комментарии:
1. Afaik, единого соглашения не существует. Я определенно видел оба.
2. @Dr.Person: Эм
{}
это «фигурные скобки». «Скобки» — общепринятый синоним круглых скобок.3. @Lightness Races in Orbit Вы правы, но разве «скобки» не являются более точными и недвусмысленными, как формулировка текущего вопроса? PS Я понятия не имею, нужно ли использовать @ feature с вашим именем пользователя, в котором есть пробелы.
4. @Dr.PersonPersonII: Вы могли бы использовать функцию автозаполнения, которая появляется при вводе
@
, либо для выполнения уведомления, либо, по крайней мере, для отображения формата, который вы должны ввести. Как это бывает, «@Lightness» достаточно. И отсутствие круглых скобок на самом деле не является «более однозначным», потому что это технически относится ко всей()
группе, но часто используется для обозначения отдельных символов.5. @Lightness Когда говорится «скобки», это может означать круглые или фигурные скобки. Теперь мы с этим согласны. Но спрашивающий вообще не спрашивает о фигурных скобках. Почему бы не устранить несколько секунд путаницы, изменив вопрос, чтобы избежать этого?
Ответ №1:
Компилятору все равно, но общепринятым соглашением является не использовать пробел.
Ответ №2:
Насколько я могу судить, пробелы требуются только для уточнения, где символы отделены друг от друга, где символы представляют собой последовательности букв, цифр и подчеркиваний. Смутно говоря, все команды препроцессора должны заканчиваться новой строкой.
#include<iostream>
int main(){char a=4 3;std::cout<<a<<std::endl;return 0;}
^ ^ ^
В этом примере у меня есть пробел между int
и main
, потому что в противном случае компилятор подумал бы, что это функция без имени возвращаемого типа intmain
. То же самое с char a
двумя символами (не переменная с именем chara
, а return 0
также два символа, а не какое-либо выражение return0
.
Ответ №3:
Пробел в вашем примере не имеет значения.
Ответ №4:
Это зависит от стандарта кодирования. Если его нет, то на человеке, пишущем код.
Комментарии:
1. стандарт кодирования, например, стиль GNU C поощряет вызовы функций для поиска
like_this (and, that);
среди других (иногда уникальных) предпочтений. и не избивайте их, но, честно говоря, если вы попробуете написать немного кода GLib / GTK , подобные наглядные пособия начинают казаться необходимыми 😉
Ответ №5:
При перегрузке операторов это, как правило, немного повышает удобочитаемость, но в большинстве случаев это излишне.