我的一位同事在ANSI C中使用const有点疯狂,我想知道你们对它的想法.他写这样的东西,例如:
const uint8* const pt_data
Run Code Online (Sandbox Code Playgroud)
我理解他的目的在哪里,但对我来说,这使得所有这些const的阅读和可维护性变得更加困难.
const 总是指右边的单词,除非它在行的末尾,它指的是项目本身(在更高级别的语言中)
const char* str; //This is a pointer to read-only char data
//Read as to (const char)* str;
//Thus :
// *str = 'a';
//Is forbidden
char* const str; //This is a read-only pointer to a char data
//Read as char* (const str);
//Thus :
// str = &a;
//Is forbidden
const char* const str; //This is a read-only pointer to read-only char data
//Read as (const char)* (const str);
//Thus :
// str = &a
// and
// *str = 'a';
//Is forbidden
Run Code Online (Sandbox Code Playgroud)
在声明它们时应始终初始化这些指针(除非它们是参数)
const关键字非常适合确保某些内容不会被修改,并且还告诉开发者它不应该.例如,int strlen(const char* str)告诉char您字符串中的数据不会被修改.