Tôi sẽ không gọi những kiểu này, nhưng các biến thể ngôn ngữ (hoặc phương ngữ).
Kiểu mã hóa là tập hợp các quy ước tùy chọn có thể không được theo sau. Ví dụ, một số kiểu mã yêu cầu tên macro là tất cả các thủ đô (nhưng mã của bạn sẽ biên dịch nếu bạn không tuân theo quy tắc đó).
của bạn "2 nd phong cách" được gọi là Kernighan & Ritchie C. Nó là C cũ được định nghĩa vào cuối những năm 1970 (trong ấn bản đầu tiên của một cuốn sách nổi tiếng trên C bởi Kernighan và Ritchie; các ấn bản tiếp theo phù hợp với các tiêu chuẩn C sau này). Đó là một ngôn ngữ lỗi thời.
Trình biên dịch hiện tại thường tuân theo tiêu chuẩn ISO C99 ISO (xuất bản năm 1999), đã được thay thế bằng tiêu chuẩn C11 mới (xuất bản năm 2011).
Trình biên dịch GCC đang chấp nhận tiêu chuẩn C99 với đối số chương trình -std=c99
. Tôi đề xuất biên dịch với gcc -Wall -std=c99
; Các trình biên dịch GCC gần đây (ví dụ 4.6 và 4.7) đang chấp nhận -std=c11
IIRC cho tiêu chuẩn mới hơn C11.
Không mã hôm nay bằng phương ngữ Kernighan và Ritchie C cũ: nó đã lỗi thời và ít được hỗ trợ bởi trình biên dịch. IMHO C99 là một tiêu chuẩn tốt để theo dõi nếu bạn thận trọng. Và tận dụng lợi thế của một số tính năng của nó (đặc biệt, khả năng trộn các khai báo và các câu lệnh bên trong một khối; các phương thức cũ hơn C để đặt tất cả các khai báo ở đầu khối.).
Tiêu chuẩn đã được tiến hành, đặc biệt bởi vì nó đã thêm các tính năng và chính xác hơn là w.r.t. với các hệ thống hiện hành và thông lệ (ví dụ như bộ vi xử lý đa lõi)
Nguồn
2012-03-11 12:52:18
Và iirc này đã được tán thành trong phiên bản của tôi về "Ngôn ngữ lập trình C, Ấn bản thứ hai, ANSI C" từ năm 1990. –
ya nó đã lỗi thời, bổ sung nó. – phoxis