在函数原型中的 char * 参数中添加 /*const*/ 而不是 const 限定符

Adding /*const*/ instead of const qualifier to char * param in function prototype

我遇到一个函数,它接受一个指向 char 数组的指针,但它只对 char * 指向的内存执行读取操作。

我可以直接在 char * 参数之前将 const 添加到原型中,但这会破坏其余的非 const 正确代码。我决定添加注释 /*const*/ 来指示该函数仅执行读取操作。

然而,这让我的同事感到困惑,我想知道添加评论是否是一种普遍的做法,批评是没有道理的。

示例:

int func(const char *readat);

对比

int func(/*const*/ char *readat);

向函数参数添加 const 不会破坏任何调用代码。允许将非 const 对象分配给 const 对象。

所以这是允许的:

char c;
char *p = &c;
const char *cp = p;

但这不是:

char c;
const char *cp = &c;
char *p = cp;