глупый программистский вопрос
Apr. 12th, 2003 03:04 pm(только программистам интересно, наверное)
Почему в процедуральных языках, как правило, нет оператора досрочного выхода из блока? Как break в C, но чтобы работал не только из циклов, а также внутри if-then или вообще любого блока.
Постоянно приходится делать глупые вложенные цепочки условий или некрасивые трюки типа while(1) и выполза по break'у (ну или, понятно, их аналоги в других языках).
Есть какая-то глубокая причина этому?
Почему в процедуральных языках, как правило, нет оператора досрочного выхода из блока? Как break в C, но чтобы работал не только из циклов, а также внутри if-then или вообще любого блока.
Постоянно приходится делать глупые вложенные цепочки условий или некрасивые трюки типа while(1) и выполза по break'у (ну или, понятно, их аналоги в других языках).
Есть какая-то глубокая причина этому?
no subject
Date: 2003-04-12 08:05 am (UTC)no subject
Date: 2003-04-12 10:45 am (UTC)Кажется, стандарт это всё же гарантирует, во всяком случае последний стандарт (т.н. C99). В C99 также есть и поддержка таких вот структур переменной длинны, с массивом неизвестного размера в качестве последнего элемента. Только память выделять надо так: malloc(sizeof(nametable_t) + 100*sizeof(nametable->names[0])). В gcc 3.1 это даже работает.
no subject
Date: 2003-04-12 11:02 am (UTC)no subject
Date: 2003-04-12 11:19 am (UTC)