C nie obsługuje na poziomie języka nic więcej niż programowanie proceduralne - i to jest dokładny wybór, ponieważ narodził się głównie jako "przenośny zestaw" i jest używany do pracy tak blisko urządzenia, jak możliwe (bez uciekania się do montażu). Większość języków asemblerowych nie dostarcza znacznie więcej, jeśli chodzi o paradygmaty programowania, niż stos i wyrażenie funkcji (niektóre mikroskopy nawet tego nie robią) - i na tym właśnie wzorowano C.
Cóż, istnieje powód, dla którego narodziło się C++ i Cel C: C musi zachować filozofię projektowania i dodać bardziej abstrakcyjne rzeczy, które ludzie musieliby naprawdę rozwikłać.
W związku z tym nic nie powstrzyma cię przed napisaniem np. Kod OO w C - właściwie, wielu ludzi to robi (powiedziałbym, że jest to jeden z najbardziej rozpowszechnionych idiomów w C), ale nie musisz się spodziewać prawie żadnego cukru w składzie: będziesz musiał użyć struct
s dla danych, "normalne" funkcje do "emulowania" metod, skład dla dziedziczenia, tablice wskaźników dla polimorfizmu i tak dalej. Wciąż nie wiem, czy to się liczy jako idiom "ostatniej dekady", ale jest on używany znacznie dłużej.
Czy pisałeś C89 lub C99? – Joe
To trudne pytanie. Nie pamiętam, jakie było programowanie 10 lat temu! –
Nie jestem pewien, czy to jest [konstruktywne] (http://stackoverflow.com/faq#dontask) ... Ciekawe pytanie jednak, więc nie zgłaszam. – cha0site