#define 设计的精巧
#include <stdio.h>
#include <string.h> typedef unsigned char lu_byte; #define CommonHeader struct GCObject *next; lu_byte tt; lu_byte marked
#define CommonHeader1 {struct GCObject *next; lu_byte tt; lu_byte marked}GCObject1 /* Common type for all collectable objects */
typedef struct GCObject {
CommonHeader;
} GCObject; typedef struct GCObject1 CommonHeader1; #define M(A) A.marked #define P(A) printf("颜值:%d\n",A.marked) int main() {
GCObject allgc;
memset(&allgc,0,sizeof(struct GCObject));
allgc.marked = 0xF7; //247
printf("颜值:%d\n",allgc.marked);
printf("颜值:%d\n",M(allgc));
//L = G(L)->mainthread;
printf("------\n");
P(allgc); printf("*******\n");
GCObject1 allgc1;
memset(&allgc1,0,sizeof(struct GCObject1));
allgc1.marked = 0xF8; //248
P(allgc1);
return 0;
}
结果
颜值:247
颜值:247
------
颜值:247
*******
颜值:248
#define 设计的精巧的更多相关文章
- Bootstrap响应式栅格系统的设计原理
1.历史背景 Bootstrap是Twitter的工程师Mark Otto和Jacob Thornton开发的一套供内部使用的UI框架,于2011年开源.2012年发布的第二版中新增了12列栅格系统和 ...
- libevent源码深度剖析
原文地址: http://blog.csdn.net/sparkliang/article/details/4957667 第一章 1,前言 Libevent是一个轻量级的开源高性能网络库,使用者众多 ...
- 《白手起家Win32SDK应用程序》(完整版+目录)
<白手起家Win32SDK应用程序> 目 录 <白手起家Win32SDK应用程序> 第一篇.预备知识 第二篇.创建Win32工程和主函数 第三篇.增加一个回调函数 第四篇.注册 ...
- 迷你MVVM框架 avalonjs 学习教程19、avalon历史回顾
avalon最早发布于2012.09.15,当时还只是mass Framework的一个模块,当时为了解决视图与JS代码的分耦,参考knockout开发出来. 它的依赖收集机制,视图扫描,绑定的命名d ...
- libevent(了解)
1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...
- Linux signal 那些事儿(4)信号的deliver顺序【转】
转自:http://blog.chinaunix.net/uid-24774106-id-4084864.html 上一篇博文提到了,如果同时有多个不同的信号处于挂起状态,kernel如何选择deli ...
- Win32SDK应用程序
转自:https://blog.csdn.net/jxf_ioriyagami/article/details/1486626 1 说在前面 由于VC6及MFC的特点,我们许多人从标准C++学习 ...
- 菜鸟nginx源码剖析数据结构篇(二) 双向链表ngx_queue_t[转]
nginx源码剖析数据结构篇(二) 双向链表ngx_queue_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn. ...
- libevent 源码分析
1,前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...
- 【腾讯Bugly干货分享】Android Patch 方案与持续交付
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多 ...
随机推荐
- demo阐述js中let和var 的不同
当我们使用 var 和 let 来声明变量时,它们在作用域和变量提升方面的差异会产生一些不同的结果.下面是一个示例来说明这些差异. // 使用 var 声明变量 function varExample ...
- Pycomcad中的过滤机制及访问引用块内对象简述
1.过滤机制 所谓过滤机制,就是选择集的规则,过滤器列表由成对的参数组成.第一个参数标识过滤器的类型(例如对象),第二个参数指定要过滤的值(例如圆).过滤器类型是指定使用哪种过滤器的 DXF 组码. ...
- 电脑tips #持续更新ing
记录日常get 1. Esc+ Fn 打开与锁住F1到F12功能键们 2. 没有找到支持的视频格式和MIME类型 场景:发生在网页嵌入的视频中 原因及解决:--网速不好,重新刷新解决 3. 问题描述: ...
- K8s中的污点和容忍
概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 污点是作用在k8 ...
- 统计SqlServer数据库的表大小
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_ ...
- IntelliJ IDEA FIX协议报文解析插件
Fix协议报文手动对照对手方的API查看十分繁琐,尤其是在开发的过程中. 于是我写了一个Fix协议报文解析插件,在idea插件应用市场搜索"Fix Protocol Parser" ...
- AI把任意文章生成ppt的工具
讯飞智文 https://zhiwen.xfyun.cn/ 可以结合 https://notebooklm.google.com/ 把视频生成PPT
- Redis、Spring Cache 、HttpClient基础
Redis 基于内存的key-value的结构数据库,读写性能高,常用于存储热点数据(短时间大量访问) MySQL则是基于磁盘的二维表结构的数据库. Redis的使用 Redis中没有用户的概念,只有 ...
- 从 Tableau文件中获取数据方法汇总
↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 在实际使用Tableau中经常会遇到需要从已有的tableau文件或仪表板中导出/提取/复制数据,本篇文章整理了相关从Table ...
- SQL server使用CTE时报错:Incorrect syntax near the keyword ‘with‘.
在SQL server中使用CTE报错:Incorrect syntax near the keyword 'with'. If this statement is a common table ex ...