質問: 関数のパラメータとしてArduinoコンパイラの `__unused`とは何ですか? 私がArduino環境ではじめて私が気づいたのは、 `File |設定|コンパイラ警告`を`なし`に設定したので、`すべて`に設定しました。そこで私はすぐに `None` に設定し直しました。 さて、「後で」は今のところ、コンパイラを静かにするためのコードを修正するための警告を開始しました。 **Note that I don't want to *disable* any warnings** - I want to placate the compiler at each spot so that it says to itself "No problem here!" * コンパイラが未使用の変数について不平を言うと、変数をコメントアウトします; * 符号付き/符号なしの比較で不平を言うと、タイプを変更します; * 関数内で未使用のパラメータがあると訴えると、私は... ...うーん。これがC ++の場合は、パラメータ名をコメントアウトして、裸の型を残しておきます。 ``` void Fn(int /*param*/) { }//Fn(param) ``` > Arduinoのレポート: > > `error:パラメータ名が省略されています` > > しかし、これはCでは合法ではありません。コンパイラによっては、 `__ unused` 属性を使うことができます: ``` void Fn(int __unused param) { }//Fn(param) ``` > Arduinoのレポート: > > `error:予期しない ';'、 '、'または ')'の前に 'param'` > > 実際のパラメータ名として `__ unused` を解釈しています。 > > もし彼らが気難しいのであれば、 ``` void Fn(int __attribute__((unused)) param) { }//Fn(param) ``` > Arduinoのレポート: > > `警告:未使用のパラメータ 'param' [-Wunused-parameter]` > > これは明らかに正しい `__属性__` ではありません。 > > したがって、Arduino環境では上記のいずれも機能しません。提案? --- 私は20年以上にわたってCとC ++でプログラミングしてきましたが、あなたが常にやるべきことは、コンパイラに**すべてのこと**について通知するように依頼することです。あなたは常に警告なしのコンパイルが必要です!それ以外の場合は、バグを見つけようと数時間か*日*かかります。コンパイラが警告していることを発見しただけです。
回答: まあ、私は掲示のためにすべての質問を入力し、最後にもう一度試しました。出来た! ``` void Fn(__attribute__((unused)) int param) { }//Fn(param) ``` ですから、良い質問を無駄にするのではなく、答えはここにあります! 今私たちがする必要があるのは、すべての図書館の管理者にこれらを入れて、他の警告を修正することです。