Update
This commit is contained in:
parent
32455c0cd7
commit
47934a4bdb
6 changed files with 45 additions and 17 deletions
11
c.md
11
c.md
|
@ -2,12 +2,18 @@
|
|||
|
||||
{ We have a [C tutorial](c_tutorial.md)! ~drummyfish }
|
||||
|
||||
C is a [low level](low_level.md), statically typed imperative compiled language, the go-to language of most [less retarded software](lrs.md). It is the absolutely preferred language of the [suckless](suckless.md) community as well as of most true experts, for example the [Linux](linux.md) and [OpenBSD](openbsd.md) developers, because of its good minimal design, level of control, uncontested performance and a greatly established and tested status.
|
||||
C is a [low level](low_level.md), [statically typed](static_typing.md) [imperative](imperative.md) compiled [programming language](programming_language.md), the go-to language of most [less retarded software](lrs.md). It is the absolutely preferred language of the [suckless](suckless.md) community as well as of most true experts, for example the [Linux](linux.md) and [OpenBSD](openbsd.md) developers, because of its good minimal design, level of control, uncontested performance and a greatly established and tested status.
|
||||
|
||||
C is usually not considered an easy language to learn because of its low level nature: it requires good understanding of how a computer actually works and doesn't prevent the programmer from shooting himself in the foot. Programmer is given full control (and therefore responsibility). There are things considered "tricky" which one must be aware of, such as undefined behavior of certain operators and raw pointers. This is what can discourage a lot of modern "coding monkeys" from choosing C, but it's also what inevitably allows such great performance -- undefined behavior allows the compiler to choose the most efficient implementation.
|
||||
|
||||
## History and Context
|
||||
|
||||
C was developed in 1972 at [Bell Labs](bell_labs.md) alongside the [Unix](unix.md) operating system by [Dennis Ritchie](dennis_ritchie.md) and [Brian Kerninghan](brian_kerninghan.md), as a successor to the [B](b.md) language ([portable](portability.md) language with [recursion](recursion.md)) written by Denis Ritchie and [Ken Thompson](ken_thompson.md), which was in turn inspired by the the [ALGOL](algol.md) language (code blocks, lexical [scope](scope.md), ...).
|
||||
|
||||
In 1973 Unix was rewritten in C. In 1978 Keninghan and Ritchie published a book called *The C Programming Language*, known as *K&R*, which became something akin the C specification. In 1989, the [ANSI C](ansi_c.md) standard, also known as C89, was released by the American ANSI. The same standard was also adopted a year later by the international ISO, so C90 refers to the same language. In 1999 ISO issues a new standard that's known as C99.
|
||||
|
||||
TODO
|
||||
|
||||
## Standards
|
||||
|
||||
C is not a single language, there have been a few standards over the years since its inception in 1970s. The notable standards and versions are:
|
||||
|
@ -143,6 +149,7 @@ RETURN_TYPE myFunction (TYPE1 param1, TYPE2 param2, ...)
|
|||
|
||||
## See Also
|
||||
|
||||
- [C pitfalls](c_pitfalls.md)
|
||||
- [C tutorial](c_tutorial.md)
|
||||
- [C pitfalls](c_pitfalls.md)
|
||||
- [C programming style](programming_style.md)
|
||||
- [IOCCC](ioccc.md)
|
Loading…
Add table
Add a link
Reference in a new issue