Автор | Сообщение |
|
| |
Пост N: 32
Зарегистрирован: 28.07.10
|
|
Отправлено: 19.11.10 04:51. Заголовок: ? Сишникам - почему не работает код
Пытаюсь создать модуль "по аналогии" из разных кусков т.к. в Си не "секу". Запнулся на задаче - передать число и в зависимости от значения выбрать операцию. Пишу так HB_FUNC( ... int nActivityType = 3; ... if( hb_pcount() == 1 && HB_ISNUM( 1 ) ) { nActivityType = hb_parni( 1 ) ; } switch( nActivityType ) { case 1: .....; case 2: .....; case 3: .....; default: .....; } Выполняется всегда дефолтный кусок. меняю на int nActivityType = 2; удаляю default вообще выполняется case 3
|
|
|
Ответов - 2
[только новые]
|
|
|
| |
Пост N: 33
Зарегистрирован: 28.07.10
|
|
Отправлено: 19.11.10 07:44. Заголовок: решил проблему алгор..
решил проблему алгоритмически - убрав switch
|
|
|
|
| постоянный участник
|
Пост N: 1002
Зарегистрирован: 09.10.06
|
|
Отправлено: 19.11.10 08:40. Заголовок: SADSTAR33 пишет: ре..
SADSTAR33 пишет: цитата: | решил проблему алгоритмически - убрав switch |
| Хитрый подход SADSTAR33 пишет: цитата: | Выполняется всегда дефолтный кусок. |
| break забыли? switch( nActivityType ) { case 1: .....; break; case 2: .....; break; case 3: .....; break; default: .....; break; } int nActivityType = 3; ... if( hb_pcount() == 1 && HB_ISNUM( 1 ) ) { nActivityType = hb_parni( 1 ) ; } Этот участок кода удобнее заменить на int nActivityType = hb_parnidef( 1, 3 );
|
|
|
|