LLVM:
PointerAlignment: Right
ReferenceAlignment: Pointer
GNU:
PointerAlignment: Right
ReferenceAlignment: Pointer
Google:
PointerAlignment: Left
ReferenceAlignment: Pointer
Chromium:
PointerAlignment: Left
ReferenceAlignment: Pointer
Microsoft:
PointerAlignment: Right
ReferenceAlignment: Pointer
Mozilla:
PointerAlignment: Left
ReferenceAlignment: Pointer
WebKit:
PointerAlignment: Left
ReferenceAlignment: Pointer
int*
描述变量的类型。ptr
设置她的名字。声明int* ptr;
在逻辑上将类型与名称分开。在一行中,
int* ptr, n;
C++ 允许声明两个变量。ptr
将接收类型int*
,但n
与预期相反,它将接收类型int
,而不是指针。因此有些人考虑到这个编译器特性并写作来int *ptr, n;
强调编译器将类型分配给名称的方式。总之:
int* ptr;
int *ptr;
在这两种情况下,都应避免在单个语句中声明多个名称。
它是格式化样式的一部分,如相关的链接声明样式:
int& ref;
、 vsint &ref;
或int & ref;
。不同的风格大体上是相同的,只有一个强制性要求:一个项目或一组项目内的风格统一。嗯,事实上,风格的统一和许多其他事物一样,都是通过测试实现的。有几种工具可以实现这一点,其中之一是:
clang-format
。如果你看一下它的预设样式列表:所以,头对头。就我个人而言,在家里我使用:
在我看来,它清晰地将一个实体与另一个实体区分开来,最重要的是,令人赏心悦目:
但也有一个选择:
简单来说,无论项目是什么,都要控制其一致性。