当前位置:网站首页>C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.2 根据位模式构筑图形
C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.2 根据位模式构筑图形
2022-08-07 14:34:00 【weixin_客子光阴】
根据位模式构筑图形
图标(icon)或者图形(glyph)是一种小型的位模式映射于屏幕后产生的图像。一个位表示图像上的一个像素。如果一个位被设置,那么它所代表的像素就是“亮”的,如果一个位被清除,那么它所代表的像素就是“暗”的。所以一系列的整数值能够用于为图形编码。类似Iconedit这样的工具用来绘制图形。它们所输出的文件是一个包含一系列整型数的ASCII文件,可以被一个窗口程序所包含。它所存在的问题是程序中的图标只是一串十六进制数。在C语言中,典型的16*16的黑白图形可能如下:
static unsigned short stopwatch[] = {
0x07C6,
0x1FF7,
0x383B,
0x600C,
0x600C,
0xC006,
0xDF06,
0xC106,
0xC106,
0x610C,
0x610C,
0x3838,
0x1FF0,
0x0700,
0x0000
};
这些C语言并未提供一个有关图形实际模样的任何线索。这里有一个惊人的#define定义的优雅集合,允许程序建立常量,使它们看上去像是屏幕上的图形。
#define X )*2+1
#define - )*2
#define s ((((((((((((((((0 /*用于建立16位宽的图形*/
定义了它们以后,只要画所需要的图标或图形等,程序会自动创建它们的十六进制模式。
使用这些宏定义,程序的字描述能力大大增强,上面这个例子可以转变为:
static unsigned short stopwatch[] = {
}
与前面的代码相比,它的意思更为明显。
标准的C语言具有八进制、十进制和十六进制常量,但没有二进制常量,否则倒是一种更为简单的绘制图形位模式的方法。
千万不要忘了在绘图结束之后清除这些宏定义,否则很可能会给你后面的代码带来不可预测的后果。
边栏推荐
猜你喜欢

Tapdata 开源项目基础教程:功能特性及实操演示

为什么 ArrayList的 初始容量为10?每次扩容1.5倍?

【YOLOv7】结合GradCAM热力图可视化

Fiddler breakpoint graphic explanation

国内软件测试岗,可以卷到什么程度?

Fiddler抓包原理讲解以及实例操作

001_微服务框架学习分类总结

CSO面对面|对话迷你世界,畅谈游戏行业的安全建设

up to date!A summary of all Kaggle competition open source solutions and Top ideas, a total of 477 competitions!

内存管理(二)——内存分段
随机推荐
[YOLOv5] Combined with GradCAM heat map visualization
联盛德W801系列4-MQTT使用
dotnet 控制台 Hangfire 后台定时任务
Controller Layer Coding Specification
【YOLOv7】结合GradCAM热力图可视化
多线程-同步问题
dotnet 特性 DynamicallyInvokable 是用来做什么的
下一代无线局域网-高吞吐率
dotnet 如何调试某个文件是哪个代码创建
Li Mu d2l(9)--Model Construction
内存管理(五)——内存回收
HJ1 字符串最后一个单词的长度
@RequestMapping注解标识的位置
视觉SLAM十四讲(高翔版本),ch1-2章节部分笔记
Codeforces Round #812 (Div. 2)
国内软件测试岗,可以卷到什么程度?
MySQL: Calculate shortest distance between latitude and longitude using custom function
The sword refers to Offer | Adjust the order of the array so that the odd numbers come before the even numbers
ADC外部RC电路电阻和电容选取计算方法
Network Foundation (3) 02-Basic Concept of Network - DNS server hosts file configuration & three-way handshake of website access process & BS architecture - browser access, CS architecture - installat