-Wunused-parameter フラグを使用すると、コンパイラの最適化として、未使用のパラメーターに __unused を適用できます。次のコードでは、2 つの警告が発生します。
#include <stdio.h>
int main(int argc, char **argv) {
printf("hello world\n");
return 0;
}
これらの警告は、未使用の引数に __unused を追加することで修正されます。
#include <stdio.h>
int main(int __unused argc, char __unused **argv) {
printf("hello world\n");
return 0;
}
__unused とマークされたパラメーターを使用すると、clang 4.1 は警告もエラーも発生しません。
#include <stdio.h>
int main(int __unused argc, char __unused **argv) {
printf("hello world. there are %d args\n", argc);
return 0;
}
を使用しても同じ動作を示し__attribute__((unused))
ます。
int main(int __attribute__((unused)) argc, char __attribute__((unused)) **argv) {
__unused で警告またはエラーを出す方法はありますか? used パラメーターに __unused を誤って残した場合、どうなりますか? 上記の例argc
では、コンパイラがヒントを利用していない可能性がありますが、正しい値を持っているように見えます。さらに理解しないと、この動作に依存しません。