In ogg-c come si garantisce che se si dispone di una funzione che accetta parametri variabili che gli specificatori di formato siano allineati con i parametri effettivi passati a il functoin?Objective-c Assicurarsi che i parametri di var-arg siano del tipo e del conteggio corretti
risposta
Questo viene fatto tramite l'uso della macro NS_FORMAT_FUNCTION.
Diciamo che si dispone di una funzione come questa:
LOG(int level,NSString *format,...);
Il livello è il livello di registro, mentre il formato contiene la stringa di formato e gli argomenti variabili sono i parametri per la stringa di formato.
Per garantire in fase di compilazione che il conteggio e tipo dei parametri è corretto definisce la funzione come questo:
LOG(int level,NSString *format,...) NS_FORMAT_FUNCTION(2,3);
noti che il 2 e 3 si riferiscono alle posizione nell'elenco argomenti della stringa di formato e l'inizio della lista dei parametri variabili.
C non verifica per impostazione predefinita.
con LLVM il numero di parametri può essere controllata (applicata) tramite la macro NS_FORMAT_FUNCTION
tipo degli argomenti non può essere controllato. Funziona per printf in un certo modo ma var_args stesso sono di qualsiasi tipo
- 1. Forzare che i parametri generici Java siano dello stesso tipo
- 2. Assicurarsi che gli oggetti siano chiusi se viene generata un'eccezione
- 3. Tipo di ritorno vararg?
- 4. Integrazione continua: assicurarsi che i nuovi commit siano coperti con i test
- 5. E i parametri del tipo generico facoltativo in C# 5.0?
- 6. Come si formatta in modo che i parametri del metodo siano impilati verticalmente, uno per riga?
- 7. Git di Visual Studio Online - Come assicurarsi che i pacchetti siano ignorati?
- 8. Perché i vararg dovrebbero essere l'ultimo nella firma del metodo?
- 9. Come assicurarsi che i tasti di un dt piton siano in minuscolo?
- 10. Come vengono compilati i parametri del modello non di tipo?
- 11. Problema Pydev PyUnit quando si utilizza thread.join per assicurarsi che tutti i thread siano uniti
- 12. Perché i parametri di tipo non modello possono essere del tipo di classe
- 13. Vararg con parametri null in Java
- 14. Assicurarsi che i blocchi sincronizzati Java siano stati presi in ordine?
- 15. bug con vararg e sovraccarico?
- 16. Swift richiede che due generici siano dello stesso tipo
- 17. Limitazione dell'inferenza del tipo bizzare - parametri di tipo multiplo
- 18. Assicurarsi che i file vengano chiusi prontamente
- 19. Come tenere traccia del conteggio delle istanze di un tipo?
- 20. Java - Classe di inizializzazione del problema con i parametri del tipo
- 21. Esecuzione di stored procedure e ritorno del conteggio delle righe al codice tramite i parametri di output e sql
- 22. C# Generics - Vincoli sui parametri del tipo
- 23. Mancata corrispondenza del conteggio dei parametri con Invoke?
- 24. I parametri del modello devono essere tipi?
- 25. JSHint pensa che le funzioni del gelsomino non siano definite
- 26. Come visualizzare il tipo e i parametri del pacchetto di classi in IntelliJ?
- 27. Assicurarsi che la prima funzione Ajax termini prima del secondo
- 28. Rimuovere l'ultimo tipo di un gruppo di parametri del modello
- 29. subprocess.call che richiede che tutti i parametri siano separati da virgole
- 30. Verificare che tutti i campi di immissione del testo siano vuoti con Selenium
@ i downvoters ... Non mi dispiace essere giù votati (anche se ho ragione;) ma almeno un commento almeno per favore! –