2013-06-07 21 views

cevap

20

Bu, NS_FORMAT_FUNCTION makrosunun kullanımıyla yapılır.

Diyelim ki böyle bir işlevi olduğunu varsayalım: biçim biçim dizesi içerir ve Değişken parametreler biçim dizesine parametreler ise

LOG(int level,NSString *format,...); 

seviye günlük düzeyidir. 2 ve burada 3 argümanlar listesinde pozisyonuna karşılık gelir bu

LOG(int level,NSString *format,...) NS_FORMAT_FUNCTION(2,3); 

Not: parametrelerin sayısı ve türü doğru olduğunu derleme zamanında sağlamak için

olarak bu işlevi tanımlar Biçim dizgisi ve değişken parametre listesinin başlangıcı.

0

C varsayılan olarak ya kontrol doesnt. parametrelerinin sayısı argümanlar makro NS_FORMAT_FUNCTION

türü aracılığıyla kontrol (güçlendirilmiş) olabilir LLVM ile

kontrol edilemez. Bir şekilde printf için çalışır, ancak var_args'ın kendisi her türden

+0

@ downvoters ... Oy vermekten (oysa haklı olsa bile) inanıyorum ama en azından bir yorum bırakma plz! –

İlgili konular