A volte ci si imbatte in codice con parentesi graffe aggiuntive, che non hanno nulla a che fare con l'ambito, ma solo per la leggibilità e per evitare errori.Parentesi di parentesi graffa in codice C++
Ad esempio:
GetMutexLock(handle) ;
{
// brace brackets "scope" the lock,
// must close block/remember
// to release the handle.
// similar to C#'s lock construct
}
ReleaseMutexLock(handle) ;
Altri luoghi che ho visto che sono:
glBegin(GL_TRIANGLES) ;
{
glVertex3d(..) ;
glVertex3d(..) ;
glVertex3d(..) ;
} // must remember to glEnd!
glEnd() ;
Questo introduce un errore del compilatore se il mutex non viene liberato (assumendo che ricorda sia il} e il Chiamata Release()
).
- È una cattiva pratica? Perché?
- Se non lo è, potrebbe cambiare il modo in cui il codice viene compilato o renderlo più lento?
In OpenGL questa pratica ha lo scopo di migliorare la leggibilità del codice. Le parentesi su glBegin() chiama come delimitatore visivo del gruppo di vertici che dovrebbe essere disegnato. – karlphillip
È una pratica terribile! Perché chiunque userebbe i delimitatori di blocchi per far risaltare un blocco di codice è fuori di me. Posso solo immaginare tutte le micro-micro-ottimizzazioni che mancano ...tutto sacrificato per qualcosa al di là del punto come leggibilità. In che mondo sta arrivando ???? –
@Noah, ti ho rinominato Sarcastic Cat. – bobobobo