我相信,您所指的文档是Linux内核编码标准:
https://computing.llnl.gov/linux/slurm/coding_style.pdf
就我个人而言,我更喜欢四个空格,笔直的。我尽量保持每行79个字符,除非我不喜欢或有一个长字符串。当附加语句或注释溢出时,我将开始与第一行上的下一个制表位对齐(如果必须,也可以超过下一个缩进级别),然后再对齐。这里是我的一些代码的一个示例(从我正在处理的一些随机代码库中提取的),请注意我如何处理多行条件。
void R_RecursiveWorldNode (mnode_t *node, int clipflags){
msurface_t *surf;
static vec3_t oldviewangle, oldorigin;
vec3_t deltaorigin, net_movement_angle;
float len_deltaorigin;
float movement_view_diff; //difference between the net movement
//angle and the view angle (0 when
//movement during frame was straight
//ahead.)
VectorSubtract (r_origin, oldorigin, deltaorigin);
len_deltaorigin = abs(len_deltaorigin);
VectorCopy (deltaorigin, net_movement_angle);
VectorNormalize(net_movement_angle);
VectorSubtract (net_movement_angle, vpn, net_movement_angle);
movement_view_diff = abs (movement_view_diff);
// if we have either a new PVS or a significant amount of
// movement/rotation, we should actually recurse the BSP again.
if ( (r_oldviewcluster != r_viewcluster && r_viewcluster != -1) ||
len_deltaorigin > 12.0 || vpn[YAW] != oldviewangle[YAW] ||
movement_view_diff > 1.0 ) {
VectorCopy (vpn, oldviewangle);
VectorCopy (r_origin, oldorigin);
r_ordinary_surfaces = NULL;
r_alpha_surfaces = NULL;
r_special_surfaces = NULL;
__R_RecursiveWorldNode (node, clipflags);
}
surf = r_ordinary_surfaces;
while (surf){
GL_RenderLightmappedPoly( surf );
surf = surf->ordinarychain;
}
}
我想,这是因为我是一个Python程序员。它相当于空闲编辑器中的默认缩进方案,我经常使用它。