|
Страници по тази тема: 1 | 2 | 3 | 4 | 5 | 6 | 7 | (покажи всички)
Тема
|
Странна C конструкция
|
|
Автор |
bira_more (бира) |
Публикувано | 22.01.08 00:54 |
|
Така де - или кода е идиотски или аз съм идиот
while (!done && ((res = ast_waitfor(chan, -1)) > -1) && fs && (f = ast_read(chan))) {
if (digit) {
.....
}
if ((f->frametype == AST_FRAME_DTMF)) {
int got = 1;
switch(f->subclass) {
case '1':
ast_set_flag(&flags, DFLAG_PAUSE);
mode = DMODE_PLAY;
break;
....
default:
got = 0;
}
if (!got) {
switch(f->subclass) {
case '#':
done = 1;
continue;
break; ////Този break имам предвид
...........
Та - питането ми е - какво прави break след continue? Точно на края.
Според мен никога при никакви условия не може да се стигне до break.
Bеer? Mоre?
| |
Тема
|
кода е идиотски :)
[re: bira_more]
|
|
Автор | eddhunter (Нерегистриран) |
Публикувано | 22.01.08 05:17 |
|
се си мислех, че съм виждал идиотски код, ама тва надхвърли очакванията ми. не е въпроса какво прави break, а по-скоро какво прави continue в switch конструкция, щото той си е само за цикли.
дори го пробвах това. GCC-то плюе: error: continue statement not within a loop
| |
Тема
|
Re: Странна C конструкция
[re: bira_more]
|
|
Автор | ~!@$%^amp;*()_ (Нерегистриран) |
Публикувано | 22.01.08 05:46 |
|
continue e за while цикъла, а break e за switch-a
иначе кода ми се вижда малко "индийски", ама явно не си дал сичко
| |
Тема
|
Re: Странна C конструкция
[re: ~!@$%^amp;*()_]
|
|
Автор | Ч!@$%№amp;*()_+ (Нерегистриран) |
Публикувано | 22.01.08 05:48 |
|
в случая break-a е по-скоро като coding standard, не че е нужен, но е полезен
| |
Тема
|
Re: Странна C конструкция
[re: Ч!@$%№amp;*()_+]
|
|
Автор | eddhunter (Нерегистриран) |
Публикувано | 22.01.08 07:10 |
|
да прав си ся го видях. при скролирането на екрана не съм видял while. пак и бирата си е спестил скоби . тва си е само coding standard.
| |
Тема
|
Re: Странна C конструкция
[re: bira_more]
|
|
Автор | Cтoйчo (Нерегистриран) |
Публикувано | 22.01.08 10:59 |
|
Немате навик да гледате dead listings маму деба...
цонтинуе се компирира до безусловен джъмп. Това е. Никакви брейкове не играят тука.... безусловния джъмп е голема сила
| |
|
кодът е писан от млад индийски хакер сигурно :)
| |
Тема
|
Re: Странна C конструкция
[re: bira_more]
|
|
Автор | Om (Нерегистриран) |
Публикувано | 22.01.08 14:44 |
|
Не си гледал достатъчно идиотски код, очевидно.
Иди при чичко Джонсън да ти се напълни сърцето!
Някой е забравил да изчисти брейка, какво толкова? Пречи ли ти?!
На ти нещо да се помъчиш:
http://www.proveyourlogic.com/
Ако още не си!
| |
Тема
|
Re: Странна C конструкция
[re: Om]
|
|
Автор | Джиcиaeц (Нерегистриран) |
Публикувано | 22.01.08 15:24 |
|
Ти явно си минал през чичко Джонсън ама нищо не си научил.
1) Трябва да се прави разлика между дефект и проявление на дефекта.
2) Трябва да се оправя дефекта, а не проявлението му.
В случая дефекта е в continue, а проявлението му е в недостижимия break. Доста компилатори ще изпсуват както каза eddhunter.
Ако някой в тази ситуация махне break-а ще ида ще го наритам и ще му изнеса едночасова лекция как трябва да се пише код. Кода без break-a става направо опасен, защото утре някой друг ще реши да махне и continue-то и гледай какво става тогава.
Това continue най-добре да го изнесат зад switch-а в един:
if (1 == done)
{
continue;
}
| |
Тема
|
Re: Странна C конструкция
[re: Джиcиaeц]
|
|
Автор | Om (Нерегистриран) |
Публикувано | 22.01.08 16:02 |
|
Мда, може да реши да махне continue-то и да не му е нужен break-a също така, не мислиш ли? Може да иска да мине и през следващото условие.
Явно работиш в споменатата фирма по-дълго, отколкото е здравословно.
| |
|
Страници по тази тема: 1 | 2 | 3 | 4 | 5 | 6 | 7 | (покажи всички)
|
|
|