Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
25 Jan 2009, 22:02
Сообщение
#1
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
У каждого есть свои предпочтения в стиле кодинга, кто то при вызове функции отделяет переменные от скобок пробелами, кто то нет, кто то ставит фигурную скобку на той же строке что и if, а кто то переносит её вниз — давайте поговорим о своих привычках.
Я намедни решил внимательно прочитать http://lxr.linux.no/linux/Documentation/CodingStyle и от души посмеялся над пассажами в духе вот этого : «Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged - the compiler knows the types anyway and can check those, and it only confuses the programmer. No wonder MicroSoft makes buggy programs.» |
|
|
|
25 Jan 2009, 22:09
Сообщение
#2
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
я использую стиль Олмана, CamelCase.
зы. а насчет того высказывания - зря ты. я вот в упор не понимаю зачем типы переменных в названии нужны. разве что для асма. название переменной должно отражать ее суть, про что и говорится в цитате. |
|
|
|
25 Jan 2009, 22:11
Сообщение
#3
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
Так я с идеей Торвальдса и не спорю, меня его острый язык рассмешил.
|
|
|
|
25 Jan 2009, 22:43
Сообщение
#4
|
|
|
God Сообщений: 263 Спасибо сказали: 121 раз |
Мой стиль:
CODE /* ReadWholeFile - считывает весь файл в строку OUT: BOOLEAN (флаг результата) */ function ReadWholeFile($FileName, &$Data) { $FileSize = @filesize($FileName); if ($FileSize===false) { return false; } // .if if ($FileSize>0) { $hFile = fopen($FileName, 'rb'); if (!$hFile) { return false; } // .if if (strlen(($Data = fread($hFile, $FileSize)))!==$FileSize) { return false; } // .if fclose($hFile); } // .if else { $Data = ''; } //.else return true; } // .function ReadWholeFile CODE PROCEDURE Init; CONST C_REWRITE_EXISTING = FALSE; BEGIN IF NOT Win.CopyFile(C_FILE_IN, C_FILE_OUT, C_REWRITE_EXISTING) THEN BEGIN Error('Cannot create output file'); END; // .if hFileOut:=Utils.FileOpen(C_FILE_OUT, fmOpenWrite OR fmShareExclusive); IF hFileOut<0 THEN BEGIN Error('Cannot open output file'); END; // .if END; // .procedure Init |
|
|
|
| Гость_Хмм.._* |
25 Jan 2009, 22:53
Сообщение
#5
|
|
|
а мне пофиг
|
|
|
|
26 Jan 2009, 09:03
Сообщение
#6
|
|
|
good news, everyone! Сообщений: 918 Спасибо сказали: 93 раза |
Ну и я тогда отпишусь, поскольку пишу на дельфи придерживаюсь стиля разработчиков, примеры можно посмотреть в VCL
-------------------- этъя опять
|
|
|
|
29 Jan 2009, 11:04
(Сообщение отредактировал Chrono Syndrome - 29 Jan 2009, 11:04)
Сообщение
#7
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата Linux style for comments is the C89 "/* ... */" style. Don't use C99-style "// ..." comments. Хм... Попыталась). Вот что пишут: Цитата /* Comment */ ^^ Warning(-4104): /* is a *** deprecated *** word (see src\compat\evolve.f) ok С "//" проблем никаких. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
29 Jan 2009, 11:11
Сообщение
#8
|
|
|
good news, everyone! Сообщений: 918 Спасибо сказали: 93 раза |
ну ворнинг и че? ) написано же деприкейт.
А сишный комментарий - это однострочный. -------------------- этъя опять
|
|
|
|
29 Jan 2009, 11:22
Сообщение
#9
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата написано же деприкейт. Вот именно. Все что "deprecated" могут убрать в любом новом релизе. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
29 Jan 2009, 12:21
Сообщение
#10
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
однострочные коменты рулят. особенно если среда разработки имеет ф-цию комента выделенных строк
|
|
|
|
29 Jan 2009, 12:44
Сообщение
#11
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
Простите, может изза того что я только проснулся, может по другой причине, но я не понимаю, о чем вы говорите.
В С99 появились однострочные комменты, но по традиции в ядре принято использовать /**/ ещё и звёздочки в начале каждой строки ставить. А что это за анализатор такой ворнинги на комменты выдаёт? |
|
|
|
29 Jan 2009, 18:27
Сообщение
#12
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
-------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
29 Jan 2009, 19:12
Сообщение
#13
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
Цитата Linux style for comments is the C89 "/* ... */" style. Don't use C99-style "// ..." comments. а вот ту видимо говорится как раз про си |
|
|
|
29 Jan 2009, 21:55
Сообщение
#14
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Нет, тут говорится о комментариях в стиле С. Просто автор явно не в курсе, что они поддерживаются и некоторыми другими языками).
-------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
29 Jan 2009, 22:10
(Сообщение отредактировал Gloin - 29 Jan 2009, 22:11)
Сообщение
#15
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
Статья Торвальдса описывает стиль кода ядра Линукс и форта не касается никоим образом.
|
|
|
|
30 Jan 2009, 11:44
(Сообщение отредактировал Chrono Syndrome - 30 Jan 2009, 11:45)
Сообщение
#16
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Не только, он еще пытается давать советы как надо писать программы.
Код 1) macros that affect control flow: #define FOO(x) \ do { \ if (blah(x) < 0) \ return -EBUGGERED; \ } while(0) is a _very_ bad idea.; Кстати, не соглашусь. Сама использовала подобные констуркции в коде FH и никаких проблем. Куда лучше чем тупая последовательность почти одинаковых условий. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
30 Jan 2009, 13:32
Сообщение
#17
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
Ретёрны в макросы лучше не прятать, иначе использующий твой код будет долго удивляться ходу работы получившегося продукта.
|
|
|
|
30 Jan 2009, 14:49
Сообщение
#18
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
а я думаю что под плохой идеей он имел ввиду мусор типа do{}while(0);
|
|
|
|
30 Jan 2009, 16:33
(Сообщение отредактировал Gloin - 30 Jan 2009, 16:33)
Сообщение
#19
|
|
![]() thick as a brick Сообщений: 898 Спасибо сказали: 23 раза |
Код Macros with multiple statements should be enclosed in a do - while block:
#define macrofun(a, b, c) \ do { \ if (a == 5) \ do_this(b, c); \ } while (0) |
|
|
|
30 Jan 2009, 21:00
Сообщение
#20
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
а почему не {}? их же вроде можно ставить просто так
|
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 7 March 2026 - 07:13 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|