2010-03-11 42 views
0

這個問題在本質上類似:縮進偏好和個性

https://stackoverflow.com/questions/492178/links-between-personality-types-and-language-technology-preferences

但它是專門壓痕基於(空格VS製表符和空格的數量)。

我在這裏問的原因而不是搜索是因爲我記得看到一個特定文件寫這個。如果我沒有記錯的話,它還談到了爲什麼萊納斯喜歡八個空格。

+0

我想知道是否有人做過關於視覺與編碼風格的研究。 – 2010-03-11 17:48:33

回答

1

你指的是該文件,我相信,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程序員。這是IDLE編輯器中默認縮進方案的C等價物,我曾經使用過很多。