而不是这样做:
int* const p;
还有这个:
const int* p;
难道你不能通过这样做更容易阅读:
typedef int* ptr;
const ptr p; //Constant pointer to an integer
和:
typedef const int ptr;
ptr* p; //Pointer to a constant integer
真的没有理由这样做。它不仅会使您的代码可读性降低,而且实际上没有任何意义。
typedef const int ptr;
^ 这没有任何意义——它是一个 const int 但你称它为指针。只需保存自己和读者并输入
const int* ptr;
编辑:
直接回答你的问题:不,你不会让它更容易。
编辑#2
还有一点,当你有
typedef const int ptr;
typedef const long ptr;
typedef const float ptr;
它不仅没有意义,因为它们不是指针,而且现在你有一堆叫做 ptr 的东西,你会对你实际上在写什么感到困惑。
通过下面的链接。作者已经清楚地解释了何时使用 typedef 何时不使用。如果我开始解释,这个博客会越来越大。
typedef
当您对表示某事的新类型有特殊需要时,应该使用它。仅仅typedef
为了节省打字而写一个是没有意义的,并且会导致代码更难阅读。
const
用于隐藏or限定符的良好 typedef 示例是volatile
只读硬件寄存器(在嵌入式软件开发中很常见)。你会写类似的东西
typedef const volatile int *ro_reg_t; /* readonly hardware register */
然后声明你的硬件寄存器:
const ro_reg_t CHIP_VERSION = (void *)0x4240000c;
这样你现在就可以写了
int val = *CHIP_VERSION;
但不是
CHIP_VERSION = 0xf00d;
或者
*CHIP_VERSION = 0xbaad;