#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 设计的精巧的更多相关文章

  1. Bootstrap响应式栅格系统的设计原理

    1.历史背景 Bootstrap是Twitter的工程师Mark Otto和Jacob Thornton开发的一套供内部使用的UI框架,于2011年开源.2012年发布的第二版中新增了12列栅格系统和 ...

  2. libevent源码深度剖析

    原文地址: http://blog.csdn.net/sparkliang/article/details/4957667 第一章 1,前言 Libevent是一个轻量级的开源高性能网络库,使用者众多 ...

  3. 《白手起家Win32SDK应用程序》(完整版+目录)

    <白手起家Win32SDK应用程序> 目 录 <白手起家Win32SDK应用程序> 第一篇.预备知识 第二篇.创建Win32工程和主函数 第三篇.增加一个回调函数 第四篇.注册 ...

  4. 迷你MVVM框架 avalonjs 学习教程19、avalon历史回顾

    avalon最早发布于2012.09.15,当时还只是mass Framework的一个模块,当时为了解决视图与JS代码的分耦,参考knockout开发出来. 它的依赖收集机制,视图扫描,绑定的命名d ...

  5. libevent(了解)

    1 前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...

  6. Linux signal 那些事儿(4)信号的deliver顺序【转】

    转自:http://blog.chinaunix.net/uid-24774106-id-4084864.html 上一篇博文提到了,如果同时有多个不同的信号处于挂起状态,kernel如何选择deli ...

  7. Win32SDK应用程序

    转自:https://blog.csdn.net/jxf_ioriyagami/article/details/1486626 1 说在前面    由于VC6及MFC的特点,我们许多人从标准C++学习 ...

  8. 菜鸟nginx源码剖析数据结构篇(二) 双向链表ngx_queue_t[转]

    nginx源码剖析数据结构篇(二) 双向链表ngx_queue_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn. ...

  9. libevent 源码分析

    1,前言 Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少.写这一系列文章的用意在于,一则分享心得:二则对libevent代码和设计思想做系统的.更深层次的分析, ...

  10. 【腾讯Bugly干货分享】Android Patch 方案与持续交付

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多 ...

随机推荐

  1. demo阐述js中let和var 的不同

    当我们使用 var 和 let 来声明变量时,它们在作用域和变量提升方面的差异会产生一些不同的结果.下面是一个示例来说明这些差异. // 使用 var 声明变量 function varExample ...

  2. Pycomcad中的过滤机制及访问引用块内对象简述

    1.过滤机制 所谓过滤机制,就是选择集的规则,过滤器列表由成对的参数组成.第一个参数标识过滤器的类型(例如对象),第二个参数指定要过滤的值(例如圆).过滤器类型是指定使用哪种过滤器的 DXF 组码. ...

  3. 电脑tips #持续更新ing

    记录日常get 1. Esc+ Fn 打开与锁住F1到F12功能键们 2. 没有找到支持的视频格式和MIME类型 场景:发生在网页嵌入的视频中 原因及解决:--网速不好,重新刷新解决 3. 问题描述: ...

  4. K8s中的污点和容忍

    概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 污点是作用在k8 ...

  5. 统计SqlServer数据库的表大小

    create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_ ...

  6. IntelliJ IDEA FIX协议报文解析插件

    Fix协议报文手动对照对手方的API查看十分繁琐,尤其是在开发的过程中. 于是我写了一个Fix协议报文解析插件,在idea插件应用市场搜索"Fix Protocol Parser" ...

  7. AI把任意文章生成ppt的工具

    讯飞智文 https://zhiwen.xfyun.cn/ 可以结合 https://notebooklm.google.com/ 把视频生成PPT

  8. Redis、Spring Cache 、HttpClient基础

    Redis 基于内存的key-value的结构数据库,读写性能高,常用于存储热点数据(短时间大量访问) MySQL则是基于磁盘的二维表结构的数据库. Redis的使用 Redis中没有用户的概念,只有 ...

  9. 从 Tableau文件中获取数据方法汇总

    ↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓ 在实际使用Tableau中经常会遇到需要从已有的tableau文件或仪表板中导出/提取/复制数据,本篇文章整理了相关从Table ...

  10. 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 ...