博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言位操作控件属性
阅读量:6509 次
发布时间:2019-06-24

本文共 1420 字,大约阅读时间需要 4 分钟。

#include <stdio.h>

#define YES 1

#define NO 0

#define SOLID 0

#define DOTTED 1

#define DASHED 2

#define BLUE 4

#define GREEN 2

#define RED 1

#define BLACK 0

#define YELLOW (RED | GREEN)

#define MAGENTA (RED | BLUE)

#define CYAN (GREEN | BLUE)

#define WHITE (RED | GREEN | BLUE)

const char * colors[8]={"black","red","green","yellow","blue","magenta","cyan","white"};

struct box_props {

    unsigned int opaque             :1;

    unsigned int fill_color         :3;

    unsigned int                    :4;

    unsigned int show_border        :1;

    unsigned int border_color       :3;

    unsigned int border_style       :2;

    unsigned int                    :2;

};

void show_settings(const struct box_props * pb);

int main(void){

    struct box_props box={YES,YELLOW,YES,GREEN,DASHED};

    printf("Original box setting:\n");

    show_settings(&box);

    box.fill_color=NO;

    box.fill_color=WHITE;

    box.border_color=MAGENTA;

    box.border_style=SOLID;

    printf("\nModified box settings:\n");

    show_settings(&box);

    return 0;

}

void show_settings(const struct box_props * pb){

    printf("Box is %s.\n",pb->opaque==YES?"shown":"transparent");

    printf("The fill color is %s.\n",colors[pb->fill_color]);

    printf("Border %s.\n",pb->show_border==YES?"shown":"not shown");

    printf("The border style is");

    switch(pb->border_style){

    case SOLID:printf("solid.\n");break;

    case DOTTED:printf("dotten.\n");break;

    case DASHED:printf("dashed.\n");break;

    default:printf("unkown type.\n");

    }

}

本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/421035,如需转载请自行联系原作者

你可能感兴趣的文章
带你使用Nginx实现HTTPS双向验证
查看>>
NT安全指南
查看>>
不同动态路由协议验证时key chain的组合测试
查看>>
C# 视频监控系列(11):H264播放器——封装API[HikPlayM4.dll] (1)
查看>>
在linux下安装oracle11g
查看>>
date命令[原创]
查看>>
oracle的审计功能
查看>>
lvs_keepalived_install 一键安装脚本
查看>>
如何为crontab调度运行的多脚本设置共享的环境变量?
查看>>
android手势创建及识别
查看>>
路由重分发、路由过滤方法及难点总结(EIGRP、OSPF实例)
查看>>
linux下构建Zabbix网络监控平台
查看>>
产生波形实验(DA转换)
查看>>
Windows Phone 实用开发技巧(6):windows phone 下汉字转拼音
查看>>
硬盘知识大杂烩(一)
查看>>
h5页面中的meta标签
查看>>
LAMP-phpMyAdmin
查看>>
谈谈:程序集加载和反射
查看>>
用python参加Kaggle的些许经验总结
查看>>
C# 一个字符串是否在另外一个字符串数组里 Array.Exists 的用法 Array.IndexOf 用法...
查看>>