Войти

Показать полную графическую версию : Braces


VuDZ
16-03-2002, 13:56
1.  Unix style
if (true) {

}

2. nonUnix style
if (true)
{

}

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

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

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

Добавлено:

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

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

VuDZ
18-03-2002, 09:34
ну я использую {
__такой стиль записи }

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

у меня в отделе принят жёсткий стандарт http://forum.ixbt.com/shuffle.gif - мною - используется смесь из 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
А я всё никак не определюсь... Всю жизнь писал (почти) в unix_style, но в последнее время он мне чтой-то разонравился...

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

VuDZ
18-03-2002, 18:00
так у нас в комментариях не описания функций, а ого, что делает класс

ivank
18-03-2002, 20:40
Вот, пример простейшего класса, который я только написал для 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
Слышь, ты его разукрасил бы для начала, что ли...
Quake3() - ..я буду, это какой-то опасный вирус :&gt;

ivank
19-03-2002, 09:25
VuDZ
Я вообще планирую ввести автоматичесскую подсветку синтаксиса -- а руками красить жуть как неохота...
Это было в тему создания документации -- вот что (ivank.oszone.net/doxygen/classCoolClass.html) он из этого сделал. Оч удобно.

Добавлено:

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

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




© OSzone.net 2001-2012