The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"OpenNews: Приемы программирования на C, позволяющие сберечь ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"OpenNews: Приемы программирования на C, позволяющие сберечь ..."  
Сообщение от opennews on 05-Авг-08, 00:27 
Общеизвестно, что сопровождение приложения отнимает значительную часть времени программиста. Частично это происходит из-за использования платформозависимых и нестандартных особенностей, но в большей степени - из-за плохого стиля программирования. В статье (http://www.ibm.com/developerworks/ru/library/au-hook_duttaC/...) дается несколько советов, которые помогают сберечь время, требуемое для сопровождения кода. Следование этим советам сделает сопровождение приложений командой разработчиков более простым.

URL: http://www.ibm.com/developerworks/ru/library/au-hook_duttaC/...
Новость: http://www.opennet.ru/opennews/art.shtml?num=17227

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от dry email on 05-Авг-08, 00:27 
по этой теме (и не только) есть замечательная книга
Ален Голуб "Веревка достаточной длины, чтобы выстрелить себе в ногу"
лучше вряд ли кто-то напишет
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от pavlinux (ok) on 05-Авг-08, 05:35 
if (f()) - за это вообще половину freashmeat, sourceforge и google code по убивать надо :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от pavlinux (ok) on 05-Авг-08, 06:52 
a[900];        b;c;d=1        ;e=1;f;        g;h;O;        main(k,
l)char*        *l;{g=        atoi(*        ++l);        for(k=
0;k*k<        g;b=k        ++>>1)        ;for(h=        0;h*h<=
g;++h);        --h;c=(        (h+=g>h        *(h+1))        -1)>>1;
while(d        <=g){        ++O;for        (f=0;f<        O&&d<=g
;++f)a[        b<<5|c]        =d++,b+=    e;for(        f=0;f<O
&&d<=g;        ++f)a[b        <<5|c]=        d++,c+=        e;e= -e
;}for(c        =0;c<h;        ++c){        for(b=0        ;b<k;++
b){if(b        <k/2)a[        b<<5|c]        ^=a[(k        -(b+1))
<<5|c]^=    a[b<<5        |c]^=a[        (k-(b+1        ))<<5|c]
;printf(    a[b<<5|c    ]?"%-4d"    :"    "        ,a[b<<5
|c]);}        putchar(    '\n');}}    /*Hello        Opennet*/

Навеяло :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Умный on 05-Авг-08, 19:11 
у меня сегфолтится, что там? :)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Allex on 05-Авг-08, 08:09 
>> goto необходимо использовать крайне умеренно

А нас на АСУ учили вообще его не использовать.
Доходило до смешного, когда делали охренительно здоровый алгоритм,
но никто не знал как его запрограммировать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от whirlwind on 05-Авг-08, 10:40 
странно вас учили. Любой алгоритм можно запрограммировать без goto
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от User294 (ok) on 05-Авг-08, 15:01 
>странно вас учили. Любой алгоритм можно запрограммировать без goto

Но иногда обходной вариант выглядит ну ооооооочень страшно.Кстати а что, вы стесняетесь и ассемблерной команды JMP тогда уж? :D

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Аноним (??) on 05-Авг-08, 11:03 
goto нужен когда не хочется тратить процессорное время на вызов функций и есть голова на плечах, например в драйверах. Посмотрите на код libata, там этого goto от души напихано, и ничего так, работает.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Ононим on 05-Авг-08, 08:26 
приятная статейка
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Andrew Kolchoogin on 05-Авг-08, 09:59 
> Никогда не следует переопределять значение NULL, которое всегда должно
> равняться нулю.

    Вранье. NULL -- далеко не всегда 0x0. Аффтар статьи не видел Vax'ов.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Romik (??) on 05-Авг-08, 14:57 
А что там?
(просто интересно)
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от whirlwind on 05-Авг-08, 15:07 
авторы QT/KDE тоже, видимо, никогда не видели Vax'ов:

>Во-вторых, вы можете встретить три различных способа определения нулевых указателей: 0, 0L

и NULL. Значение NULL не рекомендуется использовать, так как в C оно определено как (void*)0, и такое его определение не соответствует принятому в C++. Однако все известные реализации C++ корректно определяют NULL, поэтому с этим обычно проблем не возникает. Для правильной трактовки 0 в вызовах функций с переменным числом аргументов часто использовался 0L. Но теперь это тоже уже в прошлом. И, скорее, является делом привычки. По мере перемещения кода в CVS все чаще вместо NULL будет использоваться 0.

это, правда, про С++, отсюда: http://qt.osdn.org.ua/mistakes.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от whirlwind on 05-Авг-08, 10:39 
>Числовых констант, как правило, следует избегать; лучше использовать #define для задания понятного имени

а гугл настойчиво не рекомендует использовать define

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от Oles email on 06-Авг-08, 01:24 
И кто-то ещё смеет говорить что PHP небезопасен и кривой???
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Приемы программирования на C, позволяющие сберечь время, тре..."  
Сообщение от chepuha on 06-Авг-08, 13:54 
агрегация зависимых устойчивых значений в консанты, как решение для платформо-независимого кода всегда будет лучшим выбором, пусть даже внутри одной программы.

Если вы решили заменить NULL на 0, то лучше всего сделать это через #define, ибо обратная замена будет очень трудоемкой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру