2013-06-07 7 views

答えて

20

これは、NS_FORMAT_FUNCTIONマクロを使用して行います。

のは、あなたがこのような機能を持っているとしましょう:

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

フォーマットはフォーマット文字列が含まれていながら、レベルがログレベルで、変数の引数はフォーマット文字列にパラメータです。 2ここで図3は、引数リスト内の位置を参照すること

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

注パラメータの数およびタイプが正しいものであることをコンパイル時に確保するために

このように関数を定義します書式文字列と可変パラメータリストの開始位置を指定します。

0

デフォルトではどちらもチェックされません。引数の種類を確認することができないLLVMと

パラメータの数は(強制)を確認することができるマクロNS_FORMAT_FUNCTION

介し。それはprintfのために働きますが、var_args自体はどのタイプのものでもありません。

+0

@ downvoters ...私は投票しても問題ありません。 –

関連する問題