AttributeNonNull

提供: RAD Studio
移動先: 案内検索

C++ 検査 への移動

説明

nonnull 属性の付いた引数を持つ関数へ、ヌル ポインタの引数が渡されていないかどうかを確認します。

AttributeNonNull 検査をサポートするには、関数宣言で、nonnull 属性を指定します:

   __attribute__((nonnull(arg_number, ...)))

ここでの arg_number, ... には、ヌル ポインタを渡してはならない引数の番号を指定します。arg_number が指定されない場合、すべてのポインタ引数が nonnull として扱われます。

たとえば、次の宣言があるとします。

 
  void * my_copy (void *destination, const void *source, int length)
             __attribute__((nonnull (1, 2)));

ここでは、my_copy の呼び出しの中で、destination および source 引数が NULL であってはならないと定義しています。AttributeNonNull 検査により、destination または source 引数にヌル ポインタが渡されることが判明すると、AttributeNonNull 検査は my_copy 内で違反を生成します。

メモ: nonnull 属性がサポートされているのは C++ 検査に対してのみで、C++Builder コンパイラでは無視されます。


関連項目