いくつかのソースコードを閲覧しているときに、次のような関数を見つけました。
void someFunction(char someArray[static 100])
{
// do something cool here
}
いくつかの実験で、他の修飾子もそこに現れるかもしれません:
void someFunction(char someArray[const])
{
// do something cool here
}
修飾子は[
]
、配列が関数のパラメーターとして宣言されている場合にのみ許可されているようです。これらは何をしますか?関数パラメーターの場合はなぜ違うのですか?
int foo(struct bar [static 1]);
なく、を使用することをおint foo(struct bar *);
勧めしますか?(gccには、コンパイラーが警告を出すことができるように、そのような関数にフラグを立てる代替の非標準構文があることを知っています。)