LINUX.ORG.RU

стиль K&R


0

0

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

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

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

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

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

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

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

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

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

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 ★★★★★
()
Ответ на: комментарий от ttnl

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

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

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

lv ★★
()

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

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

// :(

anonymous
()

> foo<0 && bar==0

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

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

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

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

Sphinx ★★☆☆
()
Ответ на: комментарий от kto_tama

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

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

Deleted
()

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

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

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

gena2x ★★★
()
Ответ на: комментарий от Deleted

Схавает:

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 ★★★
()
Ответ на: комментарий от gena2x

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

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

eXOR ★★★★★
()

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

Deleted
()
Ответ на: комментарий от Deleted

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

Deleted
()
Ответ на: комментарий от Deleted

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

Legioner ★★★★★
()
Ответ на: комментарий от Deleted

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

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

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