A mezi tato temná zákoutí patří i nedefinované chování (undefined behavior) neboli krátce UB. ... Typicky jsou tyto oblasti ve specifikaci jazyka popsány buď vágním způsobem, nebo je (v lepším případě) přímo specifikováno, že se určitá programová konstrukce může chovat v závislosti na implementaci.
Tohle mi moc nedává smysl. Standard jazyka definuje chování programu pouze za splnění určitých podmínek. To, že při porušení těchto podmínek není chování definováno (standardem), z toho implicitně vyplývá, a není potřeba to explicitně zdůrazňovat. Není na tom nic "vágního". Překladače tak nemusí řešit, jak se program má chovat při porušení podmínek daných standardem, a díky tomu mohou generovat optimální strojový kód za předpokladu jejich splnění.
Pokud je specifikováno, že se má program chovat v závislosti na implementaci, tak se nejedná o nedefinované chování, ale o chování definované implementací (implementation-defined behavior), což je poměrně podstatný rozdíl.
19. 11. 2025, 08:31 editováno autorem komentáře