Content deleted Content added
useful criticysm |
m Reverted good faith edits by 129.21.21.231; Rv unsourced, POV. using TW |
||
Line 20:
* No syntax for [[Range (computer science)|ranges]], such as the <code>A..B</code> notation used in several languages
* No separate [[Boolean]] type: zero/nonzero is used instead<ref>The 1999 revision of the C standard added a type <code>_Bool</code>, but it was not retrofit into the language's existing Boolean contexts.</ref>
* No [[nested function]] definitions
* No formal [[closure (computer science)|closure]]s or functions as parameters (only function and variable pointers)
* No [[generator (computer science)|generator]]s or [[coroutine]]s; intra-thread control flow consists of nested function calls, except for the use of the [[longjmp]] or [[setcontext]] library functions
Line 28 ⟶ 29:
* No support for [[object-oriented programming]]; in particular, no support for polymorphism, [[inheritance (computer science)|inheritance]] and limited (inter-module only) support for [[Information hiding|encapsulation]]
* No native support for [[multithreading]] and [[computer networks|networking]]
* No standard libraries for [[GUI|graphics]] and several other application programming needs
A number of these features are available as extensions in some compilers, or can be supplied by third-party libraries, or can be simulated by adopting certain coding disciplines. For example, in most object-oriented languages, method functions include a special "this" pointer which refers to the current object. By passing this pointer as an explicit function argument, similar functionality can be achieved in C. Whereas in C++ one might write:
|