- 1
- 2
- 3
- 4
- 5
- 6
// заполнение массива случайными числами
template <typename T> void fill_array_with_random( T array[], size_t length ) {
for ( size_t i = 0; i < length; i++ ) {
array[i] = rand();
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+20
// заполнение массива случайными числами
template <typename T> void fill_array_with_random( T array[], size_t length ) {
for ( size_t i = 0; i < length; i++ ) {
array[i] = rand();
}
}
Главный недостаток - K&R indent style.
Fai 26.06.2012 01:36 # −3
bormand 26.06.2012 05:33 # +2
Начинаем индентосрач?
А еще там лишние пробелы после ( и перед ).
sayidandrtfm 26.06.2012 07:12 # +1
Разве что-то обязывает использовать в плюсах IS K&R?
Особенно при работе с шаблонами.
Как на меня, удобней всего IS Алмена либо IS Linux Kernel.
roman-kashitsyn 26.06.2012 07:39 # +3
sayidandrtfm 26.06.2012 09:28 # +1
K&R
if () {
/* one statement*/
} else {
/* one statement*/
}
LK:
if ()
/* one statement*/
else
/* one statement*/
TarasB 26.06.2012 09:36 # +2
sayidandrtfm 26.06.2012 09:41 # −1
TarasB 26.06.2012 09:42 # +1
sayidandrtfm 26.06.2012 09:48 # −1
Не соответствие установленным правилам влечёт за собой отклонение кода — там никто не будет разбираться, желающих пропатчить ядро туева хуча.
TarasB 26.06.2012 09:53 # +1
Чем отличается стиль K&R от стиля LR?
sayidandrtfm 26.06.2012 09:57 # +1
LR->LK, надо полагать.
В незначительных деталях не соблюдение которых многое значит.
TarasB 26.06.2012 14:38 # +1
sayidandrtfm 26.06.2012 15:42 # 0
Особенность в том, что для LKIS K&R and 1TBS not the same.
т. е. LKIS не использует single statement opening and closing braces, for all if, else, while, and for. Это первое, и как уже заметили для LKIS tab=8*space - necessary, а для K&R не догма,
обычно 4-ку спейсами ставят.
И да, по причине не соблюдение этих 'незначительных деталей', патч могут не принять.
sayidandrtfm 26.06.2012 15:59 # 0
TarasB 26.06.2012 19:02 # +1
И в LK таб равен 8 пробелам а отступ делается одним табом, а в KR пох какой таб, отступы делаются пробелами?
bormand 26.06.2012 19:09 # 0
http://www.kernel.org/doc/Documentation/CodingStyle
Только, в добавок, у функций скобки ставятся по allman'овски.
TarasB 26.06.2012 19:10 # 0
Отступ, набранный пробелми это пиздец.
Скобки по аллмановски - это
int main(){
return 0;
};
?
bormand 26.06.2012 19:13 # 0
В kernel пишут, что отступ в 1 таб, который настроен на 8 пробелов, при этом отмечено что это не 8 пробелов, а именно таб. Причина - чтобы не писали больше 2-3 вложенных конструкций.
> Скобки по аллмановски
int main()
{
}
TarasB 26.06.2012 19:15 # 0
2-3 вложенные конструкции это пиздец. Даже кусорт не написать.
Fai 26.06.2012 19:17 # 0
bormand 26.06.2012 19:15 # +2
Не знаю, привык к отступу в 4 пробела. Пиздец это когда табы смешаны с пробелами. Вот тогда это нечитабельное говно.
Fai 26.06.2012 19:16 # 0
Так это как раз K&R. И по K&R нет соглашения по-поводу того как ставить отступ и какой он должен быть.
roman-kashitsyn 26.06.2012 20:17 # +3
why so sad?
TarasB 26.06.2012 21:59 # +1
Fai 26.06.2012 19:15 # 0
В K&R IS скобки для одиночных операторов ставятся не зачем-то, а чтобы не допустить ошибку при изменении кода.
bormand 26.06.2012 19:25 # 0
vistefan 29.06.2012 09:20 # +1
TarasB 29.06.2012 09:22 # +2
vistefan 29.06.2012 09:30 # +1
guest 29.06.2012 10:06 # −2
Lure Of Chaos 29.06.2012 17:10 # +1
Fai 01.07.2012 00:52 # 0
sayidandrtfm 30.06.2012 17:24 # +1
vistefan 30.06.2012 17:52 # 0
— Владимир Николаевич, они и грузинский знают!
— Что он сказал?
— Обезьяна, сын осла.
bormand 26.06.2012 09:50 # 0
interested 26.06.2012 09:41 # 0
Повесить и застрелить! Но сначала сбрить хлипкую барадёнку.
bormand 26.06.2012 09:59 # +1
roman-kashitsyn 26.06.2012 10:07 # +2
interested 26.06.2012 10:07 # 0
А про итераторы тут же речи не идёт, контейнеров то нет.
bormand 26.06.2012 10:15 # +1
Проблемы могут возникнуть только если у i достаточно сложный оператор ++, который компилятор не сможет заинлайнить.
interested 26.06.2012 10:19 # 0
bormand 26.06.2012 10:27 # 0
interested 26.06.2012 10:40 # 0
bormand 26.06.2012 10:47 # 0
interested 26.06.2012 10:54 # +1
guest 26.06.2012 13:07 # +4
interested 26.06.2012 10:11 # 0
a[i++] = rand();
если уж i++ хочется.
Fai 26.06.2012 17:50 # 0
А вообще тут самое место для range-based-for из C++11.
interested 26.06.2012 18:04 # 0
UncleAli 26.06.2012 14:37 # 0
HaskellGovno 26.06.2012 08:38 # +1
TarasB 26.06.2012 09:36 # +5
guest 26.06.2012 13:12 # −8
Fai 26.06.2012 17:47 # −4
guest 26.06.2012 21:01 # +8
3.14159265 26.06.2012 21:31 # +3
rat4 29.06.2012 17:42 # 0
Lure Of Chaos 29.06.2012 22:03 # +2
rat4 30.06.2012 08:20 # +2
select сделать не долго
Lure Of Chaos 30.06.2012 08:53 # +2
rat4 30.06.2012 09:41 # +6