C语言写的俄罗斯方块

DevLabs Posted in C语言, MSP430
0

2014年最后一天, 任天堂将风靡全球30年的经典游戏下架. 作为全球最畅销的游戏, 其移植版本遍布各个平台. 下面这个是我去年在51平台上实现的, 使用12864液晶做为显示器, 用矩阵键盘操作. 大家都知道标准51只有几百字节的RAM, 当时我用的那款单片机RAM只有512字节, 使用256字节[......]

全文

编译原理实战之表达式计算器

DevLabs Posted in C语言,Tags:
0

 

前言

整理硬盘时翻出之前写的一个简单的表达式计算器, 想想当初为了理解这东西也费了不少功夫, 所以想写一篇笔记, 希望能给当初像我一样的菜鸟一点帮助. 原来只打算写表达式解析计算的方法, 写了一半后发现就光靠那点东西不一定使人看得懂代码, 所以干脆从头开始写起了.

calc

&[......]

全文

将一个32位整数圆整到不小于它的2的整数次幂

DevLabs Posted in C语言
0

代码来自: http://blog.codingnow.com/cloud/CodeCollection

实现很巧妙, 原理也很简单, 只要展开为二进制, 跟着程序逻辑走一遍就可以看明白了.

 

代码:

 

static inline bool is[......]

全文

枚举类型到底是什么类型?

DevLabs Posted in C语言,Tags:
0

 

枚举类型做为一种可以让用户自定义有限集合常量的方法, 在程序中很常用. 比如:

typedef enum
{
red,
blue,
black,
white,
} color_t;

上面我们自定义了color_t类型, 此类型的值可为red, blue,[......]

全文

在C语言中将布尔值TRUE定义为1是不是很危险?

DevLabs Posted in C语言,Tags: ,
0

(本文转自 “你必须知道的495个C语言问题”)

因为在 C 语言中所有的非零值都被看作 “真 ”, 是不是把 TRUE 定 义为 1 很危险?如果某个内置的函数或关系操作符 “返回” 不是 1 的 其它值怎么办?

C 语言中的确任何非零值都都被看作真, 但这仅限于 “输入”, 也就是说, 仅限 于[......]

全文

Linux内核kfifo探秘

DevLabs Posted in C语言,Tags:
0

今天在查资料时有人提到Liunx Kerenl中的kfifo实现很巧妙, 于是查了一下, 想一览究竟, 也好与自己写的对比对比, 看看差距:)

Linux Kernel中的kfifo代码可以在这里看到.
配合别的资料看了两遍, 懂了. 实现确实很巧妙, 尤其是读写指针回绕, 并且in和out一直增长,[......]

全文