libavcodec / domanda di libavformat

2

Ho visto questo codice riferito in due diversi luoghi, eppure non ho visto nessuno portare questo, ma sembra che sulla linea 00339 ci sia un blocco vuoto se ho copiato il codice per compilarlo, ma non lo compilerò nemmeno a causa di ciò.

if (frame_count >= STREAM_NB_FRAMES) {
 /* no more frame to compress. The codec has a latency of a few
    frames if using B frames, so we get the last frames by
    passing the same picture again */
} else {

Qualche idea o spiegazione perché sia così. È un errore da parte dell'autore quando lo copia? Che cosa dovrebbe succedere in quel caso se blocco comunque?

    
posta bitterman 09.02.2012 - 00:23
fonte

2 risposte

4

Non ci sono errori. La parte if di quel blocco è effettivamente vuota.

Spesso è più semplice esprimere la logica rendendo vuota la parte if e facendo il lavoro nella parte else. In questo caso, la parte if ha un commento che spiega in modo specifico perché è vuoto e perché non c'è niente da fare.

Il codice è legale C e verrà compilato correttamente.

    
risposta data 09.02.2012 - 00:40
fonte
2

Qualsiasi compilatore semi-decente rimuoverà comunque quel blocco e lascerà solo il blocco else (a meno che non sia vuoto).

Il punto è spiegare cosa succede quando viene soddisfatta una certa condizione importante.

    
risposta data 09.02.2012 - 01:04
fonte

Leggi altre domande sui tag