而不是这样做:
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
答案 0 :(得分:3)
没有理由这样做。它不仅会降低你的代码的可读性,而且还没有用。
typedef const int ptr;
^没有意义 - 它是一个const int,但你称之为指针。 只需保存自己和读者并输入
const int* ptr;
编辑:
直接回答你的问题:不,你不会让它变得更容易。
编辑#2
另一点,当你有
时会发生什么typedef const int ptr;
typedef const long ptr;
typedef const float ptr;
它不仅没有意义,因为它们不是指针,但现在你有一堆叫做ptr的东西,你会对你实际写的内容感到困惑。
答案 1 :(得分:0)
浏览以下链接。作者已经清楚地解释了何时使用typedef以及何时不使用。如果我开始解释,这个博客将会变得更大。
答案 2 :(得分:0)
typedef
应该在您特定需要新类型表示某些内容时使用。仅仅使typedef
保存输入是没有意义的,并且会导致难以阅读的代码。
隐藏const
或volatile
限定符的良好typedef示例如下:用于只读硬件寄存器(在嵌入式软件开发中很常见)。你会写类似
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;