#define用于程序注释
来源:互联网 发布:js点击按钮显示时间 编辑:程序博客网 时间:2024/04/30 23:23
先看一下“一种很有效的组织小汉字库的方法”中#define的用法:
定义宏:
# define EX_FONT_CHAR(value)
# define EX_FONT_UNICODE_VAL(value) (value),
# define EX_FONT_ANSI_VAL(value) (value),定义结构体:
typedef struct _wide_unicode_font16x16
{
WORD value; /* 内码 */
BYTE data[32]; /* 字模点阵 */
}Unicode;
#define CHINESE_CHAR_NUM … /* 汉字数量 */字模的存储用数组:
Unicode chinese[CHINESE_CHAR_NUM] =
{
{
EX_FONT_CHAR("业")
EX_FONT_UNICODE_VAL(0x4e1a)
{0x04,0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x44, 0x46, 0x24, 0x4c, 0x24,0x48, 0x14, 0x50, 0x1c, 0x50, 0x14, 0x60, 0x04, 0x40, 0x04, 0x40, 0x04,0x44, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00}
},
{
EX_FONT_CHAR("中")
EX_FONT_UNICODE_VAL(0x4e2d)
{0x01,0x00, 0x01, 0x00, 0x21, 0x08, 0x3f, 0xfc, 0x21, 0x08, 0x21, 0x08, 0x21,0x08, 0x21, 0x08, 0x21, 0x08, 0x3f, 0xf8, 0x21, 0x08, 0x01, 0x00, 0x01,0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00}
},
{
EX_FONT_CHAR("云")
EX_FONT_UNICODE_VAL(0x4e91)
{0x00,0x00, 0x00, 0x30, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff,0xfe, 0x03, 0x00, 0x07, 0x00, 0x06, 0x40, 0x0c, 0x20, 0x18, 0x10, 0x31,0xf8, 0x7f, 0x0c, 0x20, 0x08, 0x00, 0x00}
},
{
EX_FONT_CHAR("件")
EX_FONT_UNICODE_VAL(0x4ef6)
{0x10,0x40, 0x1a, 0x40, 0x13, 0x40, 0x32, 0x40, 0x23, 0xfc, 0x64, 0x40, 0xa4,0x40, 0x28, 0x40, 0x2f, 0xfe, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20,0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40}
}
}
乍一看,可能会以为这里是#define的什么专用,看不楚程序。其实这里的#define和平时我们用到的一样,也就是在预编译时进行宏展开,那么我们对原程序进行宏替换就可以了知道这里#define的真正含义了:
# define EX_FONT_CHAR(value) 定义“EX_FONT_CHAR(value)”为空,在实际的应用中相当于注释
# define EX_FONT_UNICODE_VAL(value) (value),定义“EX_FONT_UNICODE_VAL(value)” 为“(value),”加上括号是防止value参与运算,这里要注意“(value)”后面的逗号“,”并没有错,宏展开时此逗号正好放在了正确的位置上。
个人感觉#define用于程序注释这种用法不好,降低了程序的可读性,上面的
EX_FONT_CHAR("业")
EX_FONT_UNICODE_VAL(0x4e1a)
改成:
/*"业"*/
0x4e1a,/*"业"的内码(EX_FONT_UNICODE_VAL)*/
更好。
PS:百度快照真是太好了,因为它可以看到被GWF掉的GOOGLE快照。
定义宏:
# define EX_FONT_CHAR(value)
# define EX_FONT_UNICODE_VAL(value) (value),
# define EX_FONT_ANSI_VAL(value) (value),定义结构体:
typedef struct _wide_unicode_font16x16
{
WORD value; /* 内码 */
BYTE data[32]; /* 字模点阵 */
}Unicode;
#define CHINESE_CHAR_NUM … /* 汉字数量 */字模的存储用数组:
Unicode chinese[CHINESE_CHAR_NUM] =
{
{
EX_FONT_CHAR("业")
EX_FONT_UNICODE_VAL(0x4e1a)
{0x04,0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x44, 0x46, 0x24, 0x4c, 0x24,0x48, 0x14, 0x50, 0x1c, 0x50, 0x14, 0x60, 0x04, 0x40, 0x04, 0x40, 0x04,0x44, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00}
},
{
EX_FONT_CHAR("中")
EX_FONT_UNICODE_VAL(0x4e2d)
{0x01,0x00, 0x01, 0x00, 0x21, 0x08, 0x3f, 0xfc, 0x21, 0x08, 0x21, 0x08, 0x21,0x08, 0x21, 0x08, 0x21, 0x08, 0x3f, 0xf8, 0x21, 0x08, 0x01, 0x00, 0x01,0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00}
},
{
EX_FONT_CHAR("云")
EX_FONT_UNICODE_VAL(0x4e91)
{0x00,0x00, 0x00, 0x30, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff,0xfe, 0x03, 0x00, 0x07, 0x00, 0x06, 0x40, 0x0c, 0x20, 0x18, 0x10, 0x31,0xf8, 0x7f, 0x0c, 0x20, 0x08, 0x00, 0x00}
},
{
EX_FONT_CHAR("件")
EX_FONT_UNICODE_VAL(0x4ef6)
{0x10,0x40, 0x1a, 0x40, 0x13, 0x40, 0x32, 0x40, 0x23, 0xfc, 0x64, 0x40, 0xa4,0x40, 0x28, 0x40, 0x2f, 0xfe, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20,0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40}
}
}
乍一看,可能会以为这里是#define的什么专用,看不楚程序。其实这里的#define和平时我们用到的一样,也就是在预编译时进行宏展开,那么我们对原程序进行宏替换就可以了知道这里#define的真正含义了:
# define EX_FONT_CHAR(value) 定义“EX_FONT_CHAR(value)”为空,在实际的应用中相当于注释
# define EX_FONT_UNICODE_VAL(value) (value),定义“EX_FONT_UNICODE_VAL(value)” 为“(value),”加上括号是防止value参与运算,这里要注意“(value)”后面的逗号“,”并没有错,宏展开时此逗号正好放在了正确的位置上。
个人感觉#define用于程序注释这种用法不好,降低了程序的可读性,上面的
EX_FONT_CHAR("业")
EX_FONT_UNICODE_VAL(0x4e1a)
改成:
/*"业"*/
0x4e1a,/*"业"的内码(EX_FONT_UNICODE_VAL)*/
更好。
PS:百度快照真是太好了,因为它可以看到被GWF掉的GOOGLE快照。
- #define用于程序注释
- 程序注释
- 程序注释
- 程序注释
- 程序注释
- 预处理程序--#define 语句
- 预处理程序 #define
- 用#define定义注释的宏
- 用define 宏定义注释符号?
- 用define 宏定义注释符号?
- 用于退出程序-closeAllActivity
- VVDocumenter:用于提供快速注释的插件
- 用#define组成的程序
- 程序猿之---C语言细节31(#define和#undef宏细节、#error、#pragma message("文本信息")、宏定义注释)
- 用于大型程序的工具
- 3、程序注释
- 第三章 程序注释
- 程序没有注释
- 难得无聊
- 无语
- 权威拒绝法产生荣光效果
- Jbuilder2006 不能运行一闪而过的原因
- 用 JavaScript 实现网页图片等比例缩放效果
- #define用于程序注释
- 远远离开,,,,,
- 单片机开平方的快速算法
- PE.Explorer.v1.99.R4.Incl.Keyfilemaker.READ.NFO-EMBRACE
- RapScript开发日志 2008.8.6
- 通过Spring使用远程访问和web服务(转载)
- [Tom]SIP-T和SIP-I的比较
- 清除缓存
- 张晓东老师的清华龙星课程