C语言位操作控件属性

简介:
+关注继续查看
#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,如需转载请自行联系原作者

相关文章
|
1天前
|
存储 C语言
c语言指针
C语言指针是一个变量
12 0
|
3天前
|
编译器 C语言 Python
详解C语言指针的使用方法(下)
详解C语言指针的使用方法(下)
25 0
|
3天前
|
存储 安全 编译器
详解C语言指针的使用方法(上)
详解C语言指针的使用方法(上)
23 0
|
5天前
|
C语言 C++
C语言中特殊的指针[使用禁忌]
C语言中特殊的指针[使用禁忌]
14 0
|
5天前
|
C语言
C语言中只读指针变量与只读变量指针
C语言中只读指针变量与只读变量指针
13 0
|
6月前
|
C语言
聊一聊C语言位操作
聊一聊C语言位操作
31 0
相关产品
云迁移中心
推荐文章
更多