考试网 >> IT认证 >> 等级 >> 二级考试 >> C宏--智者的利刃,愚者的恶梦

C宏--智者的利刃,愚者的恶梦

发布时间:2006-07-25 12:10     点击:
分页:上一页  1 2 3 [4] 5  下一页

0xDF06,

0xC106,

0xC106,

0x610C,

0x610C,

0x3838,

0x1FF0,

0x07C0,

0x0000

};

  正如所看到的那样,这些C语言常量并未有提供有关图形实际模样的任何线索。这里有一个惊人的#define定义的优雅集合,允许程序建立常量使它们看上去像是屏幕上的图形。

#define X )*2+1

#define _ )*2

#define s ((((((((((((((((0 /* For building glyphs 16 bits wide */



  定义了它们之后,只要画所需要的图标或者图形等,程序会自动创建它们的十六进制模式。使用这些宏定义,程序的自描述能力大大加强,上面这个例子可以转变为:

static unsigned short stopwatch[] =

{

s _ _ _ _ _ X X X X X _ _ _ X X _ ,

s _ _ _ X X X X X X X X X _ X X X ,

s _ _ X X X _ _ _ _ _ X X X _ X X ,

s _ X X _ _ _ _ _ _ _ _ _ X X _ _ ,

s _ X X _ _ _ _ _ _ _ _ _ X X _ _ ,

s X X _ _ _ _ _ _ _ _ _ _ _ X X _ ,

s X X _ _ _ _ _ _ _ _ _ _ _ X X _ ,

s X X _ X X X X X _ _ _ _ _ X X _ ,

s X X _ _ _ _ _ X _ _ _ _ _ X X _ ,

s X X _ _ _ _ _ X _ _ _ _ _ X X _ ,

s _ X X _ _ _ _ X _ _ _ _ X X _ _ ,

s _ X X _ _ _ _ X _ _ _ _ X X _ _ ,

s _ _ X X X _ _ _ _ _ X X X _ _ _ ,

s _ _ _ X X X X X X X X X _ _ _ _ ,

s _ _ _ _ _ X X X X X _ _ _ _ _ _ ,

s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

};



  显然,与前面的代码相比,它的意思更为明显。标准的C语言具有八进制、十进制和十六进制常量,但没有二进制常量,否则的话倒是一种更为简单的绘制图形模式的方法。

  如果抓住书的右上角,并斜这看这一页,可能会猜测这是一个用于流行窗口系统的“cursor busy”小秒表图形。我是在几年前从Usenet comp.lang.c新闻组学到这个技巧的。

  千万不要忘了在绘图结束后清除这些宏定义,否这很可能会给你后面的代码带来不可预测的后果。

分页:上一页  1 2 3 [4] 5  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有