【发布时间】:2011-01-10 12:12:43
【问题描述】:
我经常看到下面的函数声明:
some_func(const unsigned char * const buffer)
{
}
知道为什么 const 在指针名称之前重复吗?
谢谢。
【问题讨论】:
-
应该是
const unsigned char* const -
iirc unsigned char const * const 也有效
-
不,你不会“经常”看到这样的声明。事实上,该声明是无效的,因此毫无意义。请在发布带有问题的代码时更加小心。
-
从右到左阅读声明会让你更好地理解。
const unsigned char * const是一个常量指针 (*const),指向一个常量 unsigned char (const unsigned char)。 -
抱歉,已更正语法。从右到左的阅读建议非常有用,谢谢! (实际上我记得在 CS 课程中学习了一些关于 RTL 方式的编译器解析的知识 :))