0

この質問は、精神的に次の質問に似ています。

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

ただし、これは特にインデントに基づいています (スペースとタブ、およびスペースの数)。

検索ではなくここで質問しているのは、これについて書いている特定のドキュメントを見た覚えがあるからです。私の記憶が正しければ、Linus が 8 つのスペースを好む理由についても語られていました。

4

1 に答える 1

1

あなたが参照しているドキュメントは、Linuxカーネルコーディング標準です: https ://computing.llnl.gov/linux/slurm/coding_style.pdf

個人的には、まっすぐに4つのスペースが好きです。気に入らない場合や長い文字列がない場合を除いて、1行あたり79文字に抑えるようにしています。括弧で囲まれたステートメントまたはコメントがこぼれると、最初の行の次のタブストップ(または必要に応じて次のインデントレベルの1つ後)に最初を揃え、その後に揃えます。これが私のコードのサンプルです(私が取り組んでいるランダムなコードベースから取得しました)。その複数行の条件付きで何をしているのかに注目してください。

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です。

于 2010-03-11T18:49:09.467 に答える