C
清雨未尽时
清雨入清晨,午时未阳依。
百望夕阳暮,如梦未尽时。
展开
-
使用GCC手动C 的编译链接
1.在工程目录创建一个 handC 的目录、创建 子目录 src 仅存储 C文件 inc 存储头文件 obj 存储编译后的对象文件 bin 存储连接后形成的库或执行文件src中创建test.c文件执行 编译操作gcc -c src/test.c -o obj/test.o执行链接原创 2017-10-26 10:31:16 · 2977 阅读 · 0 评论 -
C模版方法模式
原创 2018-02-07 22:38:11 · 529 阅读 · 0 评论 -
C fseek()、ftell()函数
static void size_reader(FileAccessorContext * p,FILE * fp){ SizeGetterContext * pThis = (SizeGetterContext*)p; pThis->size = -1; if (fseek(fp, 0, SEEK_END)==0) { pThis->size =...原创 2018-02-08 11:54:31 · 194 阅读 · 0 评论 -
C语言 errno、stderr、perror函数和strerror函数
errno表示错误代码。 记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。系统每一次出错都会对应一个出错代码,例如12表示“Cannot allocate memory"。stderr是linux(unix)标准出错输出。linux中的一个进程启动时,都会打开三个文件:标准输入、标准输出和标准出错处理。通常这三个文件都与终端联系。这三个文件分别对应文件描述符0、1、2。...原创 2018-02-08 11:17:16 · 2891 阅读 · 0 评论 -
C 责任链模式
当 A、B两个对象 A对象处理完自己任务然后传递给B进行处理任务,B处理完任务还需要A接着处理任务,这样如果只是简单的用继承的方式,在多个对象间相互调用传递,就显得混乱和力不从心了。这时候考虑用到责任链模式,就像一串念珠一样,不断的传递下去。C的代码示例如下:1.在以前的例子中 stack中增加代码如下:typedef struct ChainedValidator{ Validator ...原创 2018-02-13 23:40:59 · 317 阅读 · 0 评论 -
C 观察者模式
在模版模式中,调用 int_sorter("/line-e.txt");结果返回两行以下两行错误/line-e.txt:No such file or directory/line-e.txt:No such file or directory这是因为程序中以下代码会计算文件大小 long size = file_size(p); if (size == -1) { ...原创 2018-02-09 15:57:47 · 533 阅读 · 0 评论 -
理解C语言声明的优先级原则
A 声明从它的名字开始读取,然后按照优先级顺序依次读取。B 优先级从高到低依次是: B. 1 声明中被括号括起来的部分 B. 2 后缀操作符: 括号()表示这是一个函数,而 方括号[]表示这是一个数组 B. 3 前缀操作符:星号*表示“指向...的指针”。C 如果const 和 (或)volatile 关键字的后面紧跟着类型说明符(如 int,lon...原创 2018-02-08 23:25:39 · 442 阅读 · 0 评论 -
C 状态模式
嵌入式开发中最重要的当属状态模式(State),因为几乎所有的嵌入式开发都需要编写代码来响应硬件的各种状态。因此,代码中通常要使用各种分支结构来处理硬件的各种状态。通过简单的CD播放器为例,逐步学习一下:一、代码如下: //// cdplayer.c// TestXianDaiC//// Created by kangxg on 2018/2/3./原创 2018-02-03 10:20:42 · 1612 阅读 · 0 评论 -
C 语言 虚函数与非虚函数
一、虚函数struct Foo;typedef struct FooVtb1{ void (* const func0)(struct Foo * pThis); void (* const func1)(struct Foo * pThis); void (* const func2)(struct Foo * pThis);} FooVtb1;原创 2018-02-02 22:46:36 · 2850 阅读 · 0 评论 -
C面向对象与多态性
一、多态性面向对象的基本思考方式是将数据和处理数据的行为放到一起,降低耦合性。其要点就是不要将数据和处理数据的行为分开在 http://blog.csdn.net/kangguang/article/details/79229064中“带有检查功能的栈”的示例代码就将上限数据,下限数据和栈自身的数据都放在了栈结构体中,结果增加了耦合性。也就是说,仅将数据整合在一起,是绝对无法降低耦合性原创 2018-02-02 17:08:05 · 491 阅读 · 0 评论 -
使用C进行面向对象编程
在 http://blog.csdn.net/kangguang/article/details/78314124 中 如果考虑要将在栈中保存的值限定在一定范围内应该怎么办呢?例如只允许0到9内的值push至栈中,该范围以外的值或是空值则不能被push至栈中。如果重新再编写一个方法进行bool pushWithRangeChenk(Stack *p,int val ,int m原创 2018-02-02 15:42:33 · 1482 阅读 · 0 评论 -
C语言再学习
一、宏定义1. #define area(x) printf("The area of x is %d\n",(x * x)); area(2+5);打印信息:The area of x is 17宏展开 为 2 + 5 * 2 + 5所以应该 改为:#define area(x) printf("The area of x is %d\n",((x) * (x)));打印信息:Th...原创 2018-05-23 17:36:13 · 407 阅读 · 0 评论