我浏览了一些代码,发现惯例是将指针类型

SomeStruct* 

变成

typedef SomeStruct* pSomeStruct;

这有什么可取之处吗?

推荐答案

当指针本身可以被视为一个"黑匣子"时,这是合适的,也就是说,一段内部表示应该与代码无关的数据.

从本质上说,如果你的代码将nevergo 引用指针,而你只是在API函数中传递它(有时是通过引用),那么typedef不仅会减少代码中的*个,而且还会向程序员建议指针不应该被真正的干扰.

这也使得将来如果需要更改接口变得更容易.例如,如果您改为使用ID而不是指针(反之亦然),现有代码将不会中断,因为指针从一开始就不应该被取消引用.

C++相关问答推荐

FFmpeg不检测比特流过滤器参数

ARM上的Modulo Sim Aarch 64(NEON)

函数指针始终为零,但在解除引用和调用时有效

rSP堆栈指针在返回函数调用的值时有任何用途吗?

Apple Libm的罪恶功能

为什么getchar()挂起了,尽管poll()返回了一个好的值?""

是否有任何情况(特定类型/值),类型双关在所有符合标准的C实现中产生相同的行为?

字符串令牌化xpath表达式

如何使用Python C API实现多线程程序?

SDL 2.0-从数组渲染纹理

如何调试LD_PRELOAD库中的构造函数?

如何捕捉只有换行符或空格字符缓冲区的边缘大小写

Flose()在Docker容器中抛出段错误

这个空指针类型的转换是有效代码还是恶意代码?

C-try 将整数和 struct 数组存储到二进制文件中

";错误:寄存器的使用无效;当使用-masm=intel;在gcc中,但在AT&;T模式

C 语言中 CORDIC 对数的问题

如何用用户输入的多个字符串填充数组?

使用共享变量同步多线程 C 中的函数

是否可以在多字 C 类型中的任何位置混合存储和类型限定符?