Bahasa C dirancang oleh Dennis M. Ritchie pada tahun 1972 dan dituangkan pada C Reference Manual yang diterbitkan oleh Bell Laboratories tahun 1974. Bahasa C merupakan perkembangan dari bahasa BCPL (Basic Combined Programing Language) yang dibuat oleh Dr. Martin Richard dari Cambridge University di Inggris, kemudian dikembangkan oleh Ken Thompson menjadi bahasa yang disebut dengan B. Dennis M. Ritchie tertarik oleh interpreter bahasa B yang ditulis oleh Ken Thompson tersebut dan mengembangkannya menjadi suatu compiler yang disebut dengan C. Nama C dipilih karena merupakan urutan selanjutnya dari B dalam alphabetic. Definisi dari bahasa C dikeluarkan tahun 1979 dalam buku The C Programming Language oleh Brian Kerninghan dan Dennis M. Ritchie. Sejak saat itu masyarakat mulai mengenal adanya bahasa yang baik yaitu C. Pada awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++
Seiring dengan berkembang pesatnya bahasa C, banyak vendor mengembangkan kompiler C menurut versi masing-masing. Hal ini menggerakkan ANSI (American National Standards Institute) pada tahun 1983 untuk membuat suatu komite yang kemudian diberi nama X3J11, yang betujuan untuk membuat definisi standar bahasa C yang lebih modern dan komprehensif, dengan memperbaiki syntax dan grammar bahasa C. Usaha ini berhasil diselesaikan 5 tahun kemudian, yaitu ditandai dengan lahirnya standard ANSI untuk bahasa C yang kemudian terkenal dengan sebutan ANSI C.
Perkembangan bahasa C di komputer mikro dimulai tahun 1978 yaitu tiny-c yang ditulis oleh Tom Gibson. Seperti versi C sebelumnya, tiny-c ditulis bukan untuk tujuan komersial tetapi dipergunakan oleh Tom untuk mengajar anaknya mengenai bahasa C. Tom menyadari nilai komersial dari usahanya dan mulai memasarkan produknya. Tetangga Tom yaitu George Eberhart (penulis dari bahasa CI-C86) menulis compiler tiny-c tersebut. Tiny-c kemudian banyak dikembangkan menjadi versi bahasa C lainnya yaitu Small-C, C-80, QC, CW/C, dll.
Jenis bahasa C lain yang ditulis untuk komputer mikro adalah BD System C (BDS C). Compiler dari BDS C merupakan hasil dari kerja Leor Zolman. Sewaktu Leor Zolman berumur 17 tahun, dia menulis suatu permainan Othello di sistem operasi UNIX. Pertama kali program Othello dijalankan kurang sempurna, kemudian Leor Zolman menulis bagian dari bahasa C untuk menunjang program Othello tersebut. Setelah mencoba compiler C, ia menyadari produknya dapat dipasarkan, yang kemudian banyak dipergunakan pada komputer mikro. Sehingga mulai banyak ditulis versi lain bahasa C yang didasarkan pada DBS C. Versi-versi C yang paling popular dan banyak dipergunakan untuk komputer mikro adalah MS-C (Microsoft C) dan Turbo C yang merupakan produk buatan Borland Internasional Inc.
Pada tahun 1982 sistem operasi CP/M dan MP/M merupakan sistem operasi yang dominan pada komputer mikro. Mulai awal tahun 1983 sistem operasi yang mulai banyak dipergunakan oleh komputer mikro adalah MS/DOS dan bahasa C juga dapat dijalankan dengan sistem operasi ini. Jadi untuk mikro komputer, sistem operasi yang dapat menjalankan bahasa C adalah CP/M dan MP/M, MS-DOS dan PC-DOS serta UNIX.
Keunggulan bahasa C
1. C adalah bahasa pemrograman yang memiliki portabilitas tinggi, Program C yang ditulis untuk satu jenis platform, bisa dikompile dan dijalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standardisasi ANSI untuk C
2. C adalah bahasa pemrograman yang fleksibel karena dapat dipergunakan untuk menulis dan mengembangkan berbagai jenis program mulai dari operating system, word processor, graphic processor, spreadsheets, ataupun kompiler untuk suatu bahasa pemrograman
3. C adalah bahasa pemrograman yang bersifat moduler. Program C ditulis dalam routine yang biasa dipanggil dengan fungsi. Fungsi-fungsi yang telah dibuat, dapat digunakan kembali (reuse) dalam program ataupun aplikasi lain
4. C memiliki beberapa pustaka (library) sehingga memungkinkan seorang programmer mengembangkan programnya lebih luas tanpa harus menulis dari keseluruhan programnya
5. C memilki kelebihan dalam kecepatan proses. Apabila Anda belum pernah menggunakan compiler melainkan sering mempergunakan BASIC maka akan terkejut. Sebagai perbandingan, program yang ditulis dengan bahasa C akan lebih cepat kira-kira 50 kali lebih cepat jika dibandingkan dengan program BASIC.
6. Program yang ditulis teratur dan sistematis sehingga baik untuk dokumentasi. Dengan program yang terstruktur, apabila program ingin dimodifikasi atau dikoreksi, akan lebih mudah.
7. C lebih efisien dibandingkan dengan bahasa pemrograman lainnya, yang artinya program-program dalam bahasa C diterjemahkan ke dalam machine code dalam jumlah yang relatif lebih sedikit jika dibandingkan dengan program yang ditulis dalam bahasa pemrograman lainnya.
8.C memiliki kelebihan seperti memiliki "pointer", selain tentunya "variabel" dan "konstanta". Istilah Pointer dalam bahasa pemrograman merujuk kepada alamat-alamat memori yang mengizinkan para programmer untuk melakukan beberapa tugas secara jauh lebih efisien, dengan melibatkan bit, byte, dan word memori
Kekurangan Bahasa C
a. Bahasa C terkesan lebih rumit jika dibandingkan dengan bahasa pemrograman lainnya, khususnya jika digunakan oleh para pemrogram pemula. Ketika ALGOL dan banyak turunan ALGOL menggunakan kata-kata yang mudah diingat seperti BEGIN dan END untuk membatasi sebuah seksi dalam instruksi program, bahasa C malah menggunakan tanda kurung keriting ({ dan })
b. Beberapa operasi disederhanakan, bahkan banyak singkatannya yang cukup membingungkan para programmer pemula. Contoh yang sering digunakan adalah printf, dan scanf.