Стиль написания кода (у кого как?)

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Стиль написания кода

Сообщение Voice »

Интересно кто как код форматирует.
Предлагаю всем желающим предоставить тут пример своего форматирования на примерно следующем кусочке кода.
Начну я.

Код: Выделить всё

function some_fuction(char *parameter)
{
    if(parameter) {
        for(int i=0; i<5; i++) {
            parameter++;
        }
    } else {
        return 0;
    }

    return parameter;
}
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Стиль написания кода

Сообщение Liksys »

Код: Выделить всё

char *some_fuction(char *parameter)
{
   int count;

   if (parameter)
      for (count = 0; count < 5; count++)
         ++parameter;
   else return NULL; // тут вообще можно написать parameter = NULL

   return parameter;
}

Попутно кое-что подправил :)
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Стиль написания кода

Сообщение Uncle_Theodore »

Спасибо сказали:
VoofT
Сообщения: 119
ОС: Gentoo Linux 2007.0 [i686]

Re: Стиль написания кода

Сообщение VoofT »

Код: Выделить всё

function some_fuction(char *parameter)
{
    if(parameter)
    {
        for(int i=0; i<5; i++)
        {
            parameter++;
        }
    }
    else
    {
        return 0;
    }

    return parameter;
}

Предпочитаю так :)
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Стиль написания кода

Сообщение diesel »

почти так же как у топикстартера:

Код: Выделить всё

function some_fuction(char *parameter){
    if(parameter) {
        for(int i=0; i<5; i++) {
            parameter++;
        }
    } else {
        return 0;
    }

    return parameter;
}
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Стиль написания кода

Сообщение sergeyvp »

Код: Выделить всё

function some_fuction( char *parameter)
{
    if( parameter)
    {
        for( int i=0; i<5; i++)
        {
            parameter++;
        }
    }
    else
    {
        return 0;
    }

    return parameter;
}
Спасибо сказали:
Аватара пользователя
pipll
Сообщения: 234
Статус: Программист
ОС: Slackware 12

Re: Стиль написания кода

Сообщение pipll »

Код: Выделить всё

function some_fuction (char *parameter) {
    if (parameter) {
        for (int i = 0; i < 5; i++) {
            parameter++;
        }
    } else {
        return 0;
    }
    return parameter;
}
Спасибо сказали:
Gyzma
Сообщения: 43
ОС: Debian Squeeze/Sid

Re: Стиль написания кода

Сообщение Gyzma »

как и у многих, но люблю отступы по два спэйса:

Код: Выделить всё

function some_fuction(char *parameter)
{
  if(parameter) {
    for(int i=0; i<5; i++) {
      parameter++;
    }
  } else {
    return 0;
  }

  return parameter;
}
Есть такая профессия HeroПортер!
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Стиль написания кода

Сообщение uptime »

Код: Выделить всё

function some_fuction( char *parameter )
    {
     if( parameter )
         {
         for( int i = 0; i < 5; i++ )
             {
             parameter++;
             }
         }
     else
         {
         return 0;
         }

     return parameter;
 }
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
Аватара пользователя
Ivanhoe
Сообщения: 136

Re: Стиль написания кода

Сообщение Ivanhoe »

В соответствии с Java Code Conventions.

Код: Выделить всё

public class SomeClass {
        public static int classVar1;

        public foo() {
                int a = 0;

                if (a == 0) {
                        for (int i = 0; i < 10; i++) {
                                /* ... */
                        }
                } else {
                        /* ... */
                }
        }
}
Все погибнут при гравитационном коллапсе, Маша...
---
Затрать 5 минут в неделю. Сделай OpenOffice.org лучше http://community.i-rs.ru/index.php/topic,3241.0.html
Спасибо сказали:
Аватара пользователя
Assuri
Сообщения: 678
Статус: #include <brain.h>
ОС: Fedora 12

Re: Стиль написания кода

Сообщение Assuri »

С таким количеством операторов в телах, форматирую также, как и Lyksys, а если было бы несколько операторов, то вот так:

Код: Выделить всё

function some_fuction(char *parameter)
{
    if(parameter)
    {
        for(int i=0; i<5; i++)
        {
            parameter++;
        }
    }
    else
    {
        return 0;
    }

    return parameter;
}
Спасибо сказали:
Аватара пользователя
minoru-kun
Сообщения: 621
ОС: Debian GNU/Linux

Re: Стиль написания кода

Сообщение minoru-kun »

Код: Выделить всё

char * somefunction ( char value)
{
int i;
    if (value)
    {
        for (i = 0; i < 5; i++) value++;
        return (value);
    }
    else return ( NULL );

}

Все-таки выдрессировали меня на тру-кодинг-стайл >_<
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Стиль написания кода

Сообщение Liksys »

minoru-kun, будет сегфолтицо :)

А если вообще по-хорошему, писал бы подобную функцию так:

Код: Выделить всё

char *some_fuction(char *parameter)
{
   int count;

   if (parameter)
   {
      for (count = 0; count < 5; count++)
         ++parameter;
      return parameter;
   }

   return NULL;
}
Спасибо сказали:
Аватара пользователя
Sparky
Сообщения: 604
Статус: core dumped
ОС: Plan 9

Re: Стиль написания кода

Сообщение Sparky »

Liksys писал(а):
24.07.2007 14:44
minoru-kun, будет сегфолтицо :)

А если вообще по-хорошему, писал бы подобную функцию так:

Код: Выделить всё

char *some_fuction(char *parameter)
{
   int count;

   if (parameter)
   {
      for (count = 0; count < 5; count++)
         ++parameter;
      return parameter;
   }

   return NULL;
}


Точно - else тут нах не нужен ;)
Блог
--------------------

GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Стиль написания кода

Сообщение serzh-z »

Код: Выделить всё

char * some_fuction(char *parameter)
{
    if (parameter)
        for (int i = 0; i < 5; ++i)
            ++parameter;

    return parameter;
}
Открывающие фиг. скобки для все остального кроме функций - на той же строке что и оператор, но только в том случае, если тело внутри скобок, занимает больше одного оператора. А вообще - лучше использовать тот же стиль что и стиль исправляемого (если правится/дописывается существующий) кода.
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux

Re: Стиль написания кода

Сообщение deninok »

Может, лучше выбрать для себя какой-то из существующих стандартов написания кода? Такие ведь имеются, и не один.
От себя могу порекомендовать этот:
http://www.research.att.com/~bs/JSF-AV-rules.pdf
Правда, он не к С, а к С++ относится.
Среди прочих стандартов написания кода данный выделяется тем, что:
1. Он является стандартом написания кода в компании Lockheed Martin Corporation, являющейся одной из крупнейших авиакосмических компаний в мире.
2. Он является единственным стандартом написания кода, созданным при непосредственном участии Бьерна Страуструпа (кто не знает - это создатель языка С++).
3. Сам Бьерн Страуструп его и придерживается, правда, не на 100% (обратите внимание: приведенная выше ссылка ведет на личную страницу Страуструпа).
А еще мне (лично) нравится, что этот стандарт (несмотря на то, что относится к С++) наиболее близок к стандарту написания кода ядра Linux.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.

Re: Стиль написания кода

Сообщение eduard_pustobaev »

Форматирую в сишном стиле, то бишь как и -DooM-, sergeyvp, VoofT:

Код: Выделить всё

Details MyDatabase::selectAll(void)
{
    QSqlQuery query;
    query.exec("SELECT * FROM Details;");
    int size = 0;
    while (query.next())
        size++;
    query.exec("SELECT * FROM Details;");
    int counter = 0;
    Detail *det = new Detail[size];
    while (query.next())
        {
        det[counter].key = query.value(0).toInt();
        det[counter].name = query.value(1).toString();
        det[counter].rubber = query.value(2).toString();
        det[counter].weight = query.value(3).toDouble();
        det[counter].i_weight = query.value(4).toDouble();
        det[counter].created = query.value(5).toInt();
        det[counter].fit = query.value(6).toInt();
        det[counter].price = query.value(7).toDouble();
        counter++;
        }
    Details dets;
    dets.det = det;
    dets.count = size;
    return dets;
}


P.S. Такая хрень:

Код: Выделить всё

 int size = 0;
 while (query.next())
          size++;

потому, что sqlite не хотел количество записей падло давать.
В дисгармонии со вселенной.
Спасибо сказали: