const
パラメータを関数に渡そうとしていますが、受信側の関数がそのパラメータを考慮する必要があることを示しています。
次のコード例は、constとして宣言されていない変数を使用してtest
関数を呼び出すことができるようにする唯一の方法を示していることを理解しました。argv
void test(const char * const *arr);
int main(int argc, char *argv[], char *env[])
{
test(argv);
}
void test(const char * const *arr)
{
}
ただし、gccは次のような警告を表示します。
E:\Projects\test>gcc -o test test.c
test.c: In function 'main':
test.c:5:2: warning: passing argument 1 of 'test' from incompatible pointer type
[enabled by default]
test.c:1:6: note: expected 'const char * const*' but argument is of type 'char **'
これは私がここでしていることがどういうわけか間違っていると私に信じさせます。const
パラメータを関数に渡し、受信側の関数がそれを考慮する必要があることを示すためのより良い方法はありますか?