[Học lập trình C++] Chương 1: 1.6 – Khoảng trắng và định dạng cơ bản

1.6 – Khoảng trắng và định dạng cơ bản
Khoảng trắng là một kiểu kí tự dùng cho mục đích định dạng. Trong C++, nó ám chỉ space, tab và newline. Trình biên dịch C++ thông thường bỏ qua khoảng trắng, với một vài ngoại lệ nhỏ.
Do đó, câu lệnh dưới đây thực hiện cùng một công việc:
1
2
3
4
5
6
7
8
cout << "Hello world!";

cout               <<            "Hello world!";

                        cout <<               "Hello world!";

cout
            << "Hello world!";

Mặc dù câu lệnh cuối cùng với dòng mới nhưng trong biên dịch vẫn tốt.
Các hàm sau thực hiện cùng một thứ:
int add(int x, int y) { return x + y; }

int add(int x, int y) {
    return x + y; }

int add(int x, int y)
{    return x + y; }

int add(int x, int y)
{
    return x + y;
}

Một ngoại lệ trong C++ là trình biên dịch không bỏ qua khoảng trắng trong các chuỗi văn bản. “Hello world!”. “Hello       world!” thì khác nhau.
Và mỗi phát biểu in ra một kết quả như bạn mong muốn.
Dòng mới không cho phép dạng như sau:
cout << "Hello
     world!" << endl; // Not allowed!
Một ngoại lệ khác trong C++ là trình biên dịch không quan tâm đến khoảng trắng trong comment. Dòng comment đơn chỉ kết thúc tại cuối của một dòng. Do đó việc thực hiện như sau sẽ gây ra vấn đề.
cout << "Hello world!" << endl; // Here is a single-line comment
this is not part of the comment

Kiểu định dạng cơ bản
Không giống ngôn ngữ lập trình khác C++ không bắt buộc hạn chế kiểu định dạng nào đối với lập trình viên (hãy nhớ, tin tưởng lập trình viên). Có nhiều phương thức khác nhau của định dạng chương trình C++ được phát triển suốt năm, và bạn sẽ khó tìm thấy kiểu nào là tốt nhất. Nguyên tắc cơ bản đó là kiểu tốt nhất là một kiểu mà dễ đọc nhất và cung cấp nhiều tính nhất quán nhất.
Đây là kiểu định dạng cơ bản mà chúng tôi đề nghị:
1)    Tab của bạn nên đặt 4 khoảng trắng (hầu hết IDE đều thiết lập như vậy). Một vài IDE mặc định là 3, điều này không sao cả.
Lý do sử dụng khoảng trắng thay vì kí tự tab là nếu bạn mở code của bạn trong phần mềm đọc khác, nó sẽ giữ được sự canh lề đúng đắn.
2)    Dấu ngoặc móc nói rằng một hàm bắt đầu và kết thúc nên được đồng chỉnh căn lề với tên hàm.
int main()
{
}
Mặc dù một số người viết code thích kiểu khác hơn, kiểu này là một kiểu dễ đọc nhất và ít lỗi sinh ra từ đây vì cặp dấu của bạn luôn được đặt cùng cấp độ với nhau. Nếu bạn bị một lỗi biên dịch bởi vì lỗi liên quan đến dấu ngoặc móc, nó rất dễ đề tìm ra.
3)    Mỗi câu lệnh trong dấu ngoặc móc nên bắt đầu bằng việc thụt vào một tab. Ví dụ
int main()
{
    cout << "Hello world!" << endl; // tabbed in one tab (4 spaces)
    cout << "Nice to meet you." << endl; // tabbed in one tab (4 spaces)
}
4)    Một dòng không nên để quá dài. Thông thường 72, 78, 80 kí tự là chiều dài lớn nhất mà một dòng nên có. Nếu một dòng sẽ trở nên dài, nó nên được chia ra làm nhiều dòng. Điều này có thể được thực hiện
int main()
{
    cout << "This is a really, really, really, really, really, really, really, " <<
        "really long line" << endl; // one extra indentation for continuation line

    cout << "This is another really, really, really, really, really, really, really, " <<
            "really long line" << endl; // text aligned with the previous line for continuation line

    cout << "This one is short" << endl;
}
5)    Nếu một dòng dài bị ngắt thành 2 dòng bởi một toán tử (ví dụ << hoặc +), toán tử nên được đặt tại cuối dòng, không nên đặt ở đầu dòng tiếp theo:


    cout << "This is a really, really, really, really, really, really, really, " <<
            "really long line" << endl;
Not
    cout << "This is a really, really, really, really, really, really, really, "
            << "really long line" << endl;
6)    Sử dụng khoảng trắng để làm cho code của bạn dễ đọc hơn.
Khó đọc:
nCost = 57;
nPricePerItem = 24;
nValue = 5;
nNumberOfItems = 17;
Dễ đọc:
nCost                           = 57;
nPricePerItem                = 24;
nValue                          = 5;
nNumberOfItems          = 17;
Harder to read:
1
2
3
cout << "Hello world!" << endl; // cout and endl live in the iostream library
cout << "It is very nice to meet you!" << endl; // these comments make the code hard to read
cout << "Yeah!" << endl; // especially when lines are different lengths
Easier to read:
1
2
3
cout << "Hello world!" << endl;                  // cout and endl live in the iostream library
cout << "It is very nice to meet you!" << endl;  // these comments are easier to read
cout << "Yeah!" << endl;                         // especially when all lined up
Harder to read:
1
2
3
4
5
6
// cout and endl live in the iostream library
cout << "Hello world!" << endl;
// these comments make the code hard to read
cout << "It is very nice to meet you!" << endl;
// especially when all bunched together
cout << "Yeah!" << endl;
Easier to read:
1
2
3
4
5
6
7
8
// cout and endl live in the iostream library
cout << "Hello world!" << endl;

// these comments are easier to read
cout << "It is very nice to meet you!" << endl;

// when separated by whitespace
cout << "Yeah!" << endl;

Chúng ta sẽ tuân theo những quy ước trong suốt bài hướng dẫn này, và chúng sẽ trở thành tự nhiên với bạn. khi chúng tôi giới thiệu một chủ đề mới với bạn, chúng tôi sẽ giới thiệu phong cách lập trình với những tính năng đó.

Cuối cùng, C++ hỗ trợ bạn mạnh mẽ trong việc chọn phong cách nào mà bạn thấy thoải mái nhất, hoặc nghĩ là tốt nhất. Tuy nhiên, chúng tôi đề nghị bạn sử dụng phong cách mà chúng tôi dùng trong ví dụ. Nó đã được thử nghiệm bởi hàng ngàn lập trình viên và hàng tỉ dòng mã, và đã đã được tối ưu hóa.

Nguồn: learncpp.com

Nhận xét

Bài đăng phổ biến