1

我有一个大代码,我的许多函数都接受类型的参数
<typename> const * const <varname><typename> const * const * const <varname>

定义像
_CsC_CsCsC

例如
#define _CsC const * const#define _CsCsC const * const * const

CStands forconstsStands for *and the是为了引起你_的注意,这是一个#defined 速记。

我意识到最初的反应可能是“嗯,什么?” 但是一旦你阅读了几行以上的代码,似乎你会适应它,它会通过让你更快地查看类型/变量名来提高可读性......

在我看来,初始测试编译并且双指针更具可读性。

4

3 回答 3

6

这将是可怕和辱骂,是的。改用 a typedef

于 2012-09-11T21:53:28.957 回答
4

使用模板:

template <typename T> using CsCsC = const * const * const T;

用法:

CsCsC<Foo> x = /* ... */;
于 2012-09-11T21:59:20.617 回答
0

为了解释 Luchian 的回答:

如果你使用

typedef int * IntPtr;
typedef int ** IntPtrPtr;

你写

const IntPtr x;  
const IntPtrPtr y;

那么它等于

const int * const x;
const int * const * const y;
于 2012-09-11T22:00:16.067 回答