linux下的C语言
本专栏主要讲解C语言(标准C)本身的一些编程方面容易出现的错误,C语言的底层原理:malloc函数原理,指针与数组,声明解析规则等,还有一些C语言实现的经典程序。
谁不小心的
过于复杂,无法简介
展开
-
typedef意义,用法与常见失误
1.typedef的意义typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名,在结构体定义,还有一些数组等地方都大量的用到。它有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法 。使用typedef可编写出更加美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性以及未来的可维护性。本文下原创 2013-07-17 11:24:46 · 2159 阅读 · 0 评论 -
makefile 入门指南实例——深度优先迷宫搜索
摘要,本文将以深入优先,搜索迷宫为例,讲解makefile的用法,基本规则与隐含规则,模式规则;makefile的处理过程与原理;变量的定义,如何自动生成头文件依赖关系等。翻译 2013-09-07 15:37:36 · 2381 阅读 · 0 评论 -
C语言中回车,换行,空字符与空格:fgets和gets在读取换行符的区别
摘要:C语言中,我们常常从终端输入,并且输出到终端,键盘上的回车,输入到缓冲区以后,变成了什么字符?是‘\0’还是‘\n’?回车与换行有什么区别?本文主要为你讲解C语言中的换行、回车等控制字符,帮助区别它们的实质。原创 2013-10-01 22:46:54 · 20788 阅读 · 0 评论 -
gdb调试命令小结_与多文件调试_远程调试
摘要:在vs2010下,我们调试起来相当方便,但是使用gdb调试的时候,却困难重重。本文主要为你介绍如何在gdb下进行调试和如何将gdb打造成一个集成的编译环境。1.gdb命令小结设置断点:break(b) linenum b functionname跳转: 从当前函数退出:finish原创 2013-10-11 17:34:39 · 2351 阅读 · 0 评论 -
宏定义和枚举类型的区别
摘要:在C语言的编程中,我们常常需要定义一些常量,此时是采用宏定义还是采用枚举类型呢?它们有哪些区别?本文主要探讨这个问题。一、作用域对比1.1宏定义的默认作用域为整个文件,如果定义了宏定义结尾的地方,作用域就到那个地方;这里有一个潜在的危险,如果我们的头文件中包含了宏定义,此时会导致宏定义没有按照程序员的意愿而产生了范围扩展,当在另外的文件中有了相同的宏定义以后,就会产生原创 2013-10-12 14:49:45 · 5214 阅读 · 0 评论 -
使用有限状态自动机实现C语言的声明解析器
摘要:在很多的游戏编程中,我们使用了有限状态自动机作为模型。有限状态自动机作为变成模型,具有通用性好,方便理解的特点。本文主要结合前一个系列的两篇文章(1)C语言声明解析器的实现和(2)用C语言实现有限状态自动机 来说明如何用有限状态自动机模型实现一个C语言的声明解析器。原创 2013-10-12 15:41:10 · 2865 阅读 · 0 评论 -
google内部使用的良好编程习惯
摘要:在进行编程训练的过程中,遵循统一的编程习惯,有利于代码的易读性和维护性,从而快速提高软件编程效率。本文主要问你介绍一些常用的优良编程习惯,参考了google内部关于编程的约定文档。还是那句话,“没有最优,统一就好”。原创 2013-10-13 22:52:28 · 2349 阅读 · 0 评论 -
C系列语言中.c&&.h文件内容的区分
摘要:在开始写C程序的时候,我们往往很纳闷程序的什么部分需要放在C文件中,什么部分需要放在h文件中。本文主要从软件工程的角度,并结合一个示例,解答这个问题,并解释为什么要这样做。原创 2013-10-15 14:10:55 · 1913 阅读 · 0 评论 -
malloc与sizeof的合用的陷阱
摘要:在编程过程中,我们经常这样运用malloc: int * myarray=(int *)malloc(sizeof(int)*length),但是你是否知道,这一句简单的代码隐含了2个陷阱?1.关于malloc与void *指针还是分析上述代码:首先,malloc返回的值是void *类型,没有必要进行类型转化。而且这样会降低代码的易读性,很容易让你忽略mallo翻译 2013-10-25 15:53:10 · 5850 阅读 · 3 评论 -
C语言指针类型、指针大小、指针所指元素大小、指针加减运算
摘要:在C语言编程的过程中,我们经常用到多维数组,指针的加减运算等等。如果我们想把一个二维数组传递给一个函数,为什么不能用“a[][]”这样的形参模式?而把一维数组传递给函数可以用int a[]这样的形式?内核代码中,我们常常能看到,有两个page类型的结果体指针pagea和pageb,那么pageb-pagea数值上等于多少?是地址差还是index的差值?本文主要为你解答这些问题。本原创 2013-10-28 10:49:02 · 6724 阅读 · 0 评论