4

私はLLVM4.1に特に興味がありますが、他のコンパイラーの動作にも興味があります。

GCCドキュメント(LLVMが少なくとも部分的にサポートしている)によると、unused属性の動作は次のとおりです。

This attribute, attached to a variable, means that the variable is meant to be possibly unused. GCC will not produce a warning for this variable. 

ただし、コンパイラーが未使用のパラメーターと変数について警告できる場合は、おそらく、ユーザーが通知しなくても、どのパラメーターと変数が未使用であるかを既に認識しているはずです(特に、unused属性は変数が未使用である可能性があることを示しているだけなので)。したがって、このunused属性により、コンパイラーは追加の最適化を実行できますか、それともその目的は、より読みやすいコードを可能にすることだけですか?また、unused属性によってコンパイラーが追加の最適化を実際に実行できる場合、実際に次のように指定されたパラメーターまたは変数を使用するとどうなりますunusedか?LLVM(XCode内)はこのケースについて不満を言っているようには見えませんでしたが、適切な最適化レベルで、または適切な警告を有効にしてコンパイルしていなかった可能性があります。

4

1 に答える 1

6

__attribute__((unused))最適化には役立たず、値が必ずしも使用されないという意味ではありません。警告を抑制します (この警告の理由がある場合、つまり、値が実際に使用されていない場合)、それだけです。

于 2013-01-17T21:08:08.140 に答える