C không hỗ trợ ở mức ngôn ngữ gì khác hơn là lập trình thủ tục - và đó là một sự lựa chọn chính xác, bởi vì nó được sinh ra để được gần như là một "lắp ráp cầm tay" và nó được sử dụng để làm việc càng gần chặt vào máy như có thể (không cần phải lắp ráp). Hầu hết các ngôn ngữ lắp ráp không cung cấp nhiều hơn nữa, về mặt các mô hình lập trình, so với lệnh ngăn xếp và hàm gọi (một số micros thậm chí không) - và đó là những gì C được mô hình hóa. Sau khi tất cả, có một lý do tại sao C++ và Objective C được sinh ra: C phải giữ triết lý thiết kế của nó, và để thêm nhiều thứ trừu tượng hơn, người ta phải thực sự chia rẽ ngôn ngữ.
Điều đó đang được nói, không có gì ngăn bạn viết, ví dụ: Mã OO trong C - thực sự, nhiều người làm điều đó (tôi muốn nói rằng đó là một trong những thành ngữ được khuếch tán nhất trong C), nhưng bạn không phải mong đợi hầu như bất kỳ đường cú pháp nào cho điều đó: bạn sẽ phải sử dụng struct
s cho dữ liệu, "bình thường" chức năng để "thi đua" phương pháp, thành phần cho thừa kế, bảng con trỏ cho đa hình, và như vậy. Tuy nhiên, tôi không biết liệu đây có phải là thành ngữ "thập kỷ trước" hay không, nó đang được sử dụng lâu hơn nữa.
Nguồn
2012-02-13 14:11:41
Bạn có đang viết C89 hoặc C99 không? – Joe
Đây là một câu hỏi khó trả lời. Tôi không thể nhớ những gì lập trình giống như 10 năm trước đây! –
Tôi không chắc chắn nếu điều này là [xây dựng] (http://stackoverflow.com/faq#dontask) ... câu hỏi thú vị mặc dù, vì vậy tôi không gắn cờ. – cha0site