articles/c.md: update

This commit is contained in:
tocariimaa 2025-03-04 13:50:36 -03:00
parent 9a7583521e
commit 29d4656e3a

View file

@ -2,12 +2,13 @@
C is a procedural, compiled [programming language](programming_language.md) created by Dennis Ritchie in 1973 for use in the Unix operating system.
Despite being an [old](old.md) language, it remains very relevant and it will stay that way for the next 100 years and more.
When compared with "modern" programming languages, C is a simple and minimal language, since it lacks "modern" features such as
When compared with "modern" programming languages, C is a simple and [minimal](minimalism.md) language, since it lacks "modern" features such as
generics, memory safety, standard data structures and other high-level constructs, for that it is generally considered a low-level
language, even though strictly is a high-level language, since it abstracts over the platform dependent assembly language, effectively
turning C into a portable assembly. Detractors are quick to point nonsense such as "C can't be a portable assembly because it forces
an abstract model", ignoring the fact that C being so influential that any CPU architecture meant to be taken seriously has a compiler
language, even though strictly is a high-level language, because it abstracts over the platform dependent [assembly language](assembly.md), effectively
turning C into a portable assembly. [Detractors](rust.md) are quick to point nonsense such as "C can't be a portable assembly because it forces
an abstract model", ignoring the fact that C being so influential that any [CPU](cpu.md) architecture meant to be taken seriously has a compiler
for it (therefore a CPU made to efficiently execute C, incidentally or not).
Additionally, it is quite unforgiving and does not handhold the programmer at all,
in part this is good since it forces to actually think what one is doing, unlike in modern languages.
@ -46,6 +47,7 @@ Currently there are multiple independent compilers (non exhaustive list):
(Portable C Compiler): classic portable compiler from the Unix days, successor of Ritchie's C compiler.
- [OpenWatcom](https://openwatcom.org/): a C compiler from the DOS days, proprietary.
- MSVC: proprietary compiler from [Micro$oft](microsoft.md), notable for being stuck in ANSI C for decades.
- ...and many more implementations
## Examples
### Hello world
@ -89,7 +91,7 @@ main(int argc, char **argv)
{
if (argc < 2)
return 1;
/* in "real" code you want to use the strtol/strtoul functions */
/* in "real" code you may want to use the strtol/strtoul functions */
int n = atoi(argv[1]);
printf("fact(%i) = %lli\n", n, fact(n));
return 0;