LINUX.ORG.RU

стиль K&R


0

0

Купил книжку K&R на русском языке, второе издание. Немного напрягает стиль расстановки пробелов. 
Например в массиве s[i+j] пробелов вокруг плюса нет, хотя написано что лучше делать. Или в сложных выражениях:
if (foo<0 && bar==0) ...
Здесь есть логика (типа удобство чтения кода) или это ошибки при наборе?

И ещё вопрос. Почему ядро пишется с табами по 8 символов, хотя в книжке, которую все называют не иначе как "библия" их 4? И вообще какой стиль программирования лучше?
anonymous

Re: стиль K&R

Переводы нередко хуже оригиналов.

> И ещё вопрос. Почему ядро пишется с табами по 8 символов, хотя в книжке, которую все называют не иначе как "библия" их 4?

Таб может быть любого размера.

> И вообще какой стиль программирования лучше?

Наиболее популярны отступы в 4 пробела. А вообще особой разницы нет, главное, чтобы у человека с другим размером tab-а текст программы не расползся.

Legioner ★★★★★
()
Ответ на: Re: стиль K&R от Legioner

Re: стиль K&R

> Таб может быть любого размера.

Request for Comments:  678 

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

               The conventional stops for horizontal tabs are every
               eight characters, that is character positions 9, 17, 25,
               ... within the logical page.

dilmah ★★★★★
()
Ответ на: Re: стиль K&R от Legioner

Re: стиль K&R

>Таб может быть любого размера.

В ядре специально оговаривается таб в 8 символов

ttnl ★★★★★
()
Ответ на: Re: стиль K&R от ttnl

Re: стиль K&R

> В ядре специально оговаривается таб в 8 символов

Там Линус так захотел (Documentation/CodingStyle)

А вообще - всё, что разумно, имеет право на существование.

lv ★★
()

Re: стиль K&R

> Почему ядро пишется с табами по 8 символов

Потому что Линус говорит, что если очень долго смотреть на Луну^Wисходники ядра, можно стать идиотом^W^W^Wотступы в 8 символов удобнее.

// :(

anonymous
()

Re: стиль K&R

> foo<0 && bar==0

Это недогляд при наборе, там чаще всё-таки с пробелами.

В листинге на с. 128 вообще несколько косяков.

> И вообще какой стиль программирования лучше?

Наверное, ты хотел сказать «стиль оформления кода»; тут главное, чтобы в проекте в оформлении была однородность, а остальное — субъективные эстетические придирки. В современных средах стиль переключается одним тумблером, так что париться не нужно.

Sphinx ★★☆☆
()
Ответ на: Re: стиль K&R от kto_tama

Re: стиль K&R

>  if (foo<0 & & bar==0)

такое компилятор не схавает :) пробел между & & не должен быть, это же логическое И, оно вродь как должно быть &&

Deleted
()

Re: стиль K&R

> if (foo<0 && bar==0)

IMHO, идеальный стиль, основание:

чем больше текста помещается на 1 экран одновреммено тем выше читабельность кода - не надо скроллить.

gena2x ★★★
()
Ответ на: Re: стиль K&R от Deleted

Re: стиль K&R

Схавает:

rikz@desktop ~ $ cat main.c 
#include <stdio.h>

int main(int argc, char *argv[]) {
	int foo = -1;
	int bar = 0;

	if (foo < 0 & & bar==0) {
		printf("true\n");
	} else {
		printf("false\n");
	}
	return 0;
}

rikz@desktop ~ $ gcc main.c 
rikz@desktop ~ $ ./a.out 
false

но распарсит не так, как предполагалось, а отнеся второй амперсанд к второй переменной :)

Rikz ★★★
()
Ответ на: Re: стиль K&R от gena2x

Re: стиль K&R

тогда идеальный стиль - писать все ровными кубиками по 80 символов шириной без табуляций и пробелов.

Example:
if(a==b){c=d;e=f;++j;*a=**b;cde->ad();sd();}else{qqq();qq1+=qqw12--;}

eXOR ★★★★★
()

Re: стиль K&R

кста, народ, а какой тулзой можно автоматически отформатировать пачку исходников?

Deleted
()
Ответ на: Re: стиль K&R от Deleted

Re: стиль K&R

>кста, народ, а какой тулзой можно автоматически отформатировать пачку исходников?
astyle?

anonymous
()
Ответ на: Re: стиль K&R от anonymous

Re: стиль K&R

эко меня переклинило :) ведь знал же ж :). 

лан, у мну вопрос... а какой в большинстве случаев используется? а то сколько видел исходников - "кто куда" :) я конечно понимаю, пиши как тебе удобно, но все-таки.

Deleted
()
Ответ на: Re: стиль K&R от Deleted

Re: стиль K&R

В С\С++ действительно кто куда. В Java и C# есть общепринятый стиль, хотя иногда и там пишут по-другому. Можно взять любой крупный проект (linux kernel, mozilla firefox, etc) и найти его codestyle, если своих предпочтений нет.

Legioner ★★★★★
()
Ответ на: Re: стиль K&R от Deleted

Re: стиль K&R

> а какой в большинстве случаев используется?

freestyle. самый популярный.

eXOR ★★★★★
()
Ответ на: Re: стиль K&R от Rikz

Re: стиль K&R

>indent, не то?

да я уже вспомнил :)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.