在函数原型中的 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;
我遇到一个函数,它接受一个指向 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;