程序设计基石与实践系列之能让你成为Top程序员的十个C语言资源

英文出处:mycplus ---top-ten-c-language-resources

一些人觉得编程无聊,一些人觉得它很好玩。但每个程序员都必须紧跟编程语言的潮流。大多数程序员都是从C开始学习编程的,因为C是用来写操作系统、应用程序最常用的语言。

  • C编程笔记 : 这些是华盛顿实验学院C编程入门课的部分笔记。它们是以《c程序设计语言》的补充笔记(从1995年春开始)为基础修改的,而这本书的作者就是大名鼎鼎的Brian Kernighan和Dennis Ritchie了,人们亲昵地称呼他们为K&R。
  • Chris Sawtell的C语言教程 : 这些文档包含了使你学习C语言本身的完整课程。行文使用正确、传统的英语。作者使用了相同的语言结构,如果是我来直接教你的话,我也会这么使用。
  • 用C写的一些有用的库 : 这是一份很有用的自由软件或库的分类,这些软件一般在免费的操作系统上跑,尤其是GNU的操作系统和它的GNU/Linux分支。
  • C语言的高级和低级: 你可以使用一些工具和风格来扩展C,使它有一些”高级”语言的特点。同时,你也可以略过C的一些很通常的特性,直接使用底层功能。
  • 微软的C语言参考 : 这本《C语言参考》描述了微软使用的C语言。书的结构是以ANSI C标准为基础,同时也增加了微软对ANSI C标准的扩展。
  • 在线C/C++教程和文档 : 这个页面包含了一些链接,有免费的电子文档、说明、教程、参考、常见问题、C和C++的书籍等。

关于程序设计基石与实践更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.

时间: 2024-11-10 01:25:20

程序设计基石与实践系列之能让你成为Top程序员的十个C语言资源的相关文章

程序设计基石与实践系列之C语言程序员必读的5本书

英文出处:fromdev:best-c-programming-books 你正计划着通过看书来学习C语言吗?"书籍是人类最忠诚的朋友".海明威一定知道书籍对一个人一生的重要性.书籍是知识的丰富来源.你可以从书中学到各种知识.书籍可以毫无歧视地向读者传达作者的本意.C语言是由 Dennis Ritchie在1969年到1973年在贝尔实验室研发的.C语言可以把程序简单地编译为机器指令,使得它成为了最高效的语言. 为什么在程序员中,C语言如此流行呢?这背后有很多原因.首先,它独立于平台,

程序设计基石与实践系列之成为一名Top的C语言程序员

英文出处:Fabien Sanglard -To become a good C programmer 问题的提出 每过一段时间我总会收到一些程序员发来的电子邮件,他们会问我是用什么编程语言来编写自己的游戏的,以及我是如何学习这种编程语言的.因此,我认为在这篇博文里列出一些有关C语言的最佳读物应该能帮到不少人.如果你知道其它的优秀读物,请给我发邮件或者直接在评论栏中告诉我吧. 问题的解答 我在之前的一篇博文中已经提到过了,目前为止,所有我所编写的商业3D引擎95%都是C89(也称作标准C,或AN

程序设计基石与实践系列之编写高效的C程序与C代码优化

原文出处: codeproject:Writing Efficient C and C Code Optimization 虽然对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机器依然无法取代,通常,加快程序的速度也会加大代码量.这些增加的代码也会影响一个程序的复杂度和可读性,这是不可接受的,比如你在一些小型的设备上编程,例如:移动设备.PDA--,这些有着严格的内存限制,于是,在优化的座右铭是:写代码在内存和速度都应该优化. 整型数 / Integers 在我们知道使用的

程序设计基石与实践系列之类型提升、内存分配,数组转指针、打桩和矢量变换

英文出处:Peter Fa?ka: Guide to Advanced Programming in C C语言可用于系统编程.嵌入式系统中,同时也是其他应用程序可能的实现工具之一. 当你对计算机编程怀有强烈兴趣的时候,却对C语言不感冒,这种可能性不大.想全方位地理解C语言是一件极具挑战性的事. Peter Fa?ka 在2014年1月份写下了这篇长文,内容包括:类型提升.内存分配,数组转指针.显式内联.打桩(interpositioning)和矢量变换. 整型溢出和类型提升 多数C程序员以为,

程序设计基石与实践系列之失落的C语言结构体封装艺术

英文来源于 Eric S. Raymond-- The Lost Art of C Structure Packing 谁该阅读这篇文章 本文是关于削减C语言程序内存占用空间的一项技术--为了减小内存大小而手工重新封装C结构体声明.你需要C语言的基本知识来读懂本文. 如果你要为内存有限制的嵌入式系统.或者操作系统内核写代码,那么你需要懂这项技术.如果你在处理极大的应用程序数据集,以至于你的程序常常达到内存的界限时,这项技术是有帮助的.在任何你真的真的需要关注将高速缓存行未命中降到最低的应用程序里

程序设计基石与实践系列之按值传递还是按引用

从简单的例子开始.假设我们要交换两个整形变量的值,在C/C++中怎么做呢?我们来看多种方式,哪种能够做到. void call_by_ref(int &p,int &q) { // 可以交换的例子 int t = p; p = q; q = t; } void call_by_val_ptr(int * p,int * q) { // 不能交换的例子 int * t = p; p = q; q = t; } void call_by_val(int p,int q){ // 不能交换的例子

程序设计基石与实践系列之C语言未定义行为一览

英文出处:Christopher Cole: a glimpse of undefined behavior in c 几周前,我的一位同事带着一个编程问题来到我桌前.最近我们一直在互相考问C语言的知识,所以我微笑着鼓起勇气面对无疑即将到来的地狱. 他在白板上写了几行代码,并问这个程序会输出什么? #include <stdio.h> int main(){ int i = 0; int a[] = {10,20,30}; int r = 1 * a[i++] + 2 * a[i++] + 3

程序设计基石与实践之C语言指针和数组基础

英文出处:Dennis Kubes:  <Basics of Pointers and Arrays in C>. 关于C语言中指针和数组的争论就像是一场恶战.一方面,有些人觉得,所有人都必须承认指针与数组是不同的.而另一些人则认为数组被当成指针来处理,因此它们不应该有什么区别.这种现象让人迷惑.然而,这两种说法其实都是正确的. 数组不是指针,指针也不能说是数组.在C语言中,指针仅在内存中代表一个地址,而数组是许多连续的内存块,多个类型相似的元素存储在其中.更深入的解释,请参考我之前的博文&l

漫谈程序员系列:一张图道尽程序员的出路

<推背图>相传由唐太宗时期的司天监李淳风和袁天罡合著(此两人其实是超级武学高手,参见小椴的<开唐>),推算大唐以后中国两千多年的国运盛衰,在中国七大预言书中居首,是当之无愧的中国第一预言奇书. 我最喜爱的当代小说作家之一格非也有一篇小说以<推背图>为名,很好看. 说真的,本文和推背图没有一毛钱关系,唯一的关系就是大家都占个图字. --------------正文分割线--------------- 最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图