In order to learn C you must write and run C programs, and in order to run C programs you will generally need a ``C compiler.'' As explained elsewhere, a compiler is a special program which builds other programs. Specifically, a compiler takes a program which you have written in a higher-level language such as C, and translates or compiles that program into an equivalent machine-language program which is suitable for execution on a computer's CPU. There are many different kinds of compilers, depending on the input language to be compiled and the type of CPU for which code is to be generated.
The easiest compiler to use is one that is already set up and running somewhere. If you have access to a timesharing system (such as an ISP with a ``shell prompt,'' or a multiuser system at a university), there is a good chance that that system already has a C compiler. Similarly, if you have access (at work or in a lab) to an engineering workstation, there is a good chance that it has a C compiler. Most Unix systems have C compilers, and the freeware Linux operating system (a Unix clone which runs on, among other machines, PC compatibles) comes with an excellent free C compiler, gcc (which we'll have more to say about later).
Assuming that you don't have access to an existing C compiler but that you do have access to a personal computer under your control, you can obtain and install your own C compiler for that machine. You have several options, ranging from expensive to cheap to free, from simple to sophisticated, and from easy to difficult. (Of course, since nothing in life is truly free, you probably won't be able to find an option which is simultaneously free, easy to use, and perfectly matched to your own preferred level of simplicity or sophistication.)
Shareware and Freeware Compilers
This page by Steve Summit // Copyright 1995-9 // mail feedback