私はヒューズからこのサンプルコードを読んでいます:
http://Fuse.sourceforge.net/helloworld.html
そして、私は次のコードスニペットが何をするのか理解するのに苦労しています:
static int hello_readdir(const char *path, void *buf, Fuse_fill_dir_t filler,
off_t offset, struct Fuse_file_info *fi)
{
(void) offset;
(void) fi;
具体的には、(void)「変数名」のこと。 Cプログラムでこの種のコンストラクトを見たことがないので、Googleの検索ボックスに何を入力すればよいかさえわかりません。私の現在の最善の推測は、それが未使用の関数パラメーターの何らかの指定子であるということですか?誰かがこれが何であるかを知っていて、私を助けることができれば、それは素晴らしいことです。ありがとう!
いくつかのコンパイラ警告を回避します。関数パラメーターを使用しない場合、一部のコンパイラーは警告します。このような場合、そのパラメーターを意図的に使用せず、何らかの理由でインターフェイスを変更できなくても、警告を閉じたい場合があります。その(void)
キャスティング構造は、警告が消える無操作です。 clangを使用した簡単な例を次に示します。
int f1(int a, int b)
{
(void)b;
return a;
}
int f2(int a, int b)
{
return a;
}
-Wunused-parameter
フラグとprestoを使用してビルドします。
$ clang -Wunused-parameter -c -o example.o example.c
example.c:7:19: warning: unused parameter 'b' [-Wunused-parameter]
int f2(int a, int b)
^
1 warning generated.
コードに関しては何もしません。
-Wunused
警告。
これを行う別の方法は、以下を使用することです:
#pragma unused