我面对的一个函数需要一个指向char
数组的指针,但它仅对char *
所指向的内存执行读操作。
我可以在const
参数之前直接将char *
添加到原型中,但这会破坏其余的非const正确代码。我决定添加注释/*const*/
来表示该功能仅执行读取操作。
但是,这使我的同事感到困惑,我想知道添加评论是否是一种常用方法,而批评是没有道理的。
示例:
int func(const char *readat);
与
int func(/*const*/ char *readat);
答案 0 :(得分:3)
在函数参数中添加const
不会中断任何调用代码。可以将非常量对象分配给const对象。
所以这是允许的:
char c;
char *p = &c;
const char *cp = p;
但这不是:
char c;
const char *cp = &c;
char *p = cp;