我是 C 语言新手,所以我希望我使用了正确的术语。我看到许多资源建议应该对函数参数使用 VLA 语法,这些参数应该是非空指针,如下所示
void foo(char bar[static 1])
意思是
bar
应该是一个指向char的非空指针,因为指针会衰减。某些编译器可能会发出有关传递空指针的警告。
我想知道如何将参数声明为指向
const
字符的 const
指针。那么 VLA 语法等价于
void foo(char bar* const)
这适用于指向
const char
的指针
void foo(const char bar[static 1])
但是
void foo(const char const bar[static 1])
发出有关重复的警告
const
。
您需要将
const
关键字放在方括号内:
void foo(const char bar[static const 1])