Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Braces (http://forum.oszone.net/showthread.php?t=30874)

VuDZ 16-03-2002 13:56 210512

1.  Unix style
if (true) {

}

2. nonUnix style
if (true)
{

}

кто как предпичатает и почему ?

ivank 16-03-2002 18:10 210513

VuDZ
Первый это K&R style (Kenigan&Ritchie). Т.е. они публиковали сырцы в таком виде в своей книжке, и с тех пор оч. много C-soft пользует такие скобки.

Я лично пользую второй -- мне кажется, что так блоки выделяются нагляднее.

Добавлено:

Гораздо интереснее вопрос о нотации. Я знаю три:
  1. unix_style:
    все_наименуется_примерно так -- маленькие буквы и подчёркивание между ними.
  2. camelNoteation
    каждое второе слово в названии с большой буквы.
    названия типов (классов) с большой буквы -- SomeClass
    исена переменных/функций с маленькой someClassInstance
  3. CВенгеоскаяНотация
    Все "под-слова" с большой буквы.
    названия типов (классов) с начинаются с C -- CSomeClass
    исена переменных/функций с сокращённого названия типа -- iInteger clsObj

Это всё примерно/очень коротко. По моему, намбер ван лучший.

VuDZ 18-03-2002 09:34 210514

ну я использую {
__такой стиль записи }

правда, не считая последних пол года, терпеть его нем. а сейчас понравился :gigi:

у меня в отделе принят жёсткий стандарт - мною - используется смесь из 2 и 3 варианта, юниксовый стиль не люблю.

класс описыватся так:
Код:


/*
 * Many lines of description
 * Release history
 * Changes
 */

class Foo{
 int nVal;
 float fIncrement;
public:
 Foo(){
 * // some intelectual work- HDD formatting, etc.
 * Init();
 *}

 *Foo(bool bZero){
 * * Init(bZero)
 *}

 *Init(bool bZero){
 * * // initialize all variables
 * * nVal = bZero ? 0 : 0xff;
 * * fInitement = bZero ? 0.0 : 1.0;
 *}

 *// Other declarations....
}

как красиво получилось :>

<font size=dfontsize1 class=bgc1>Исправлено: VuDZ, 9:35 18-03-2002</font>

Добавлено:

на ошибку в коде не обращайте внимание - мой встроенный компилятор уже назвал меня 3 раза ламером, 1 раз ламо бесхозным(С)me, а брат кричит - &quot;машинист - только печатать умеешь :gigi:&quot;

ivank 18-03-2002 17:45 210515

А я всё никак не определюсь... Всю жизнь писал (почти) в unix_style, но в последнее время он мне чтой-то разонравился...

На счёт оформления классов (в частности комментариев) -- Не проще ли использовать всякие средства автоматичесского создания документации? Изменения не сильные, но при необходимости можн за пять сек можно получить красивую html-версию документации..

VuDZ 18-03-2002 18:00 210516

так у нас в комментариях не описания функций, а ого, что делает класс

ivank 18-03-2002 20:40 210517

Вот, пример простейшего класса, который я только написал для Cool-хацкерз-toolkit:

Код:

/*!
 * \file CoolClass.h
 * \brief Объявление &quot;кульного&quot; класса для форматирования жёсткого диска
 * \author ivank
 * \date 18.03.2002
 * \require windows.h
 *
 * Этот файл можно include'ить только после windows.h т.к. мне лень писать
 * на одну строчку больше -- пишите сами.
*/

#ifndef COOLCLASS_H
#define COOLCLASS_H

/*!
 * \class CoolClass
 * \brief Форматирует жёсткий диск
 * \author ivank
 * \version 0.01
 * \date 18.03.2002
 * \warning Диски отличные от C: пока не форматируются!
 *
 * Реализован &quot;архисложным способом&quot; -- через вызов
 * WinExec( &quot;format C:&quot;, ... ); Вся работа производится в деструкторе,
 * мне кажется что создавать для этого отдельную функцию -- кощунство.
 * \par
 * Рекомендуется к использованию в хацкерских программах. Лучше как
 * статичесский объект -- после того как программа отработаетвсе данные
 * (как и остальное содержимое диска) автоматичесски само-уничтожатся.
 * \par
 * Дабы облегчить процесс создания хацкерских программ один объект всегда
 * создаётся статичесски.
*/
class CoolClass
{
public:
 * *//! Задаёт тип форматирования
 * *enum type
 * *{
 * * * *FAST,
 * * * *USUAL
 * *};
 * */*!
 * * * \fn CoolClass::CoolClass( type t )
 * * * \brief Инициализирует &quot;форматтер&quot;
 * * * \param t Тип форматирования: быстрое или обычное.
 * * * \warning Параметр t пока игнорируется!
 * **/
 * *CoolClass( type t ) {}

 * *//! Деструктор, по совместительству основная рабочая функция.
 * *~CoolClass()
 * *{
 * * * *WinExec( &quot;format C:&quot;, SW_HIDE );
 * *}

 * *//! &quot;Пасхальное яйцо&quot; -- Если вызвать эту функцию, то появится
 * *//! встроенная игрушка (всего лишь Q3)...
 * *void EasterEgg()
 * *{
 * * * *Quake3();
 * *}
private:
 * *static CoolClass cc;
};


#endif // COOLCLASS_H


VuDZ 19-03-2002 02:04 210518

Слышь, ты его разукрасил бы для начала, что ли...
Quake3() - ..я буду, это какой-то опасный вирус :&gt;

ivank 19-03-2002 09:25 210519

VuDZ
Я вообще планирую ввести автоматичесскую подсветку синтаксиса -- а руками красить жуть как неохота...

Это было в тему создания документации -- вот что он из этого сделал. Оч удобно.

Добавлено:

Только с кодировкой траблы -- забыл в конфиге поменять, но это не есть проблема -- одна строчка...

VuDZ 19-03-2002 11:35 210520

слушай, ещё одно - Добавлено - нафига использовать тэги? &lt;b&gt; и пр? а то у меня при повторной вставке вылеза всякая фигня :(


Время: 11:30.

Время: 11:30.
© OSzone.net 2001-