#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 不仅系统版本众多 ...
随机推荐
- C# 之静态构造器与静态字段初始化器
public class Test { /// <summary> /// 静态字段初始化器会在调用静态构造器前运行. /// 如果类型没有静态构造器,字段会在类型被使用前或运行时中更早的 ...
- Windows平台调试器原理与编写01.调试框架
调试器原理与编写01.调试框架-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 调试框架 调试器最基本功能: 断点,单步 断点分为三类 软件断点 硬件断点 内存断点 ...
- 10年+.NET Coder 心语 ── 单一职责原则的思维:为什么你的代码总在"牵一发而动全身"
引言 在编程的世界里,面向对象设计(Object-Oriented Design, OOD)就像盖房子时打下的地基,决定了一个系统是否稳固.耐用.而在众多设计原则中,单一职责原则(Single Res ...
- 在Amazon Q辅助下,半小时开发了一个俄罗斯方块游戏
大家好,我是晓凡 写在前面 在AI的辅助下,晓凡基于HTML.CSS和JavaScript 开发了简单的俄罗斯方块游戏. 小伙伴们可直接跳转文末获取源码. 一.最终效果 二.功能特点 7种经典方块形状 ...
- EasyExcel读取多个sheet表数据,自定义监听器
接口 /** * 导入 * * @param file * @return */ @PostMapping("/waitimport") public Result waitImp ...
- 洛谷 P5590 赛车游戏
洛谷 P5590 赛车游戏 P5590 赛车游戏 Problem 给一张有向图,请给每一条边赋上边权\(w\in[1,9]\)使得每一条\(1\to n\)的路径的长度相等. Solution 先来点 ...
- Visio画图心得
关于Visio画图时的心得 1.关于对齐 我之前常常是在visio中视图里打开网格,然后根据网格来对齐框框,但是其实网格旁边的参考线用于对齐更好用. 首先,打开在视图选项卡里勾上参考线. 然后因为要根 ...
- 未来已来?vSphere 9 预览版部署体验
最近看到不少技术爱好者开始分享 vSphere 9 的基础体验镜像,作为 VMware 的忠实粉丝,怎么能错过这波"尝鲜"机会呢? 趁着空闲时间,我也动手安装体验了一下.从初步使用 ...
- 鸿蒙Next仓颉语言开发实战教程:消息列表
大家好,今天要分享的是仓颉语言开发商城应用实战教程的消息列表页面. 这个页面的导航栏和之前有所不同,不过难度并没有增加,只是标题移到了左边,我们使用两端对齐方式就能实现,导航栏部分的具体代码如下: R ...
- Java 并发工具类核心使用场景深度解析
在 Java 并发编程中,java.util.concurrent(JUC)包提供的工具类是解决多线程协作.资源控制及任务调度的关键.本文聚焦同步协调.资源控制.线程协作.并行计算四大核心场景,系统解 ...