【ThinkingInC++】14、联合体使用

/**
* 功能:联合体使用
* 时间:2014年8月13日08:55:39
* 作者:cutter_point
*/

#include<iostream>
#include<stdlib.h>

using namespace std;

union Packed
{
    char i;
    short j;
    int k;
    long l;
    float f;
    double d;   //这个联合体会用里面最大的变量需求的空间作为联合体的空间
    //这里联合体的空间大小是double的大小
};

int main()
{
    cout<<"sizeof(char)="<<sizeof(char)<<endl;
    cout<<"sizeof(short)="<<sizeof(short)<<endl;
    cout<<"sizeof(int)="<<sizeof(int)<<endl;
    cout<<"sizeof(long)="<<sizeof(long)<<endl;
    cout<<"sizeof(float)="<<sizeof(float)<<endl;
    cout<<"sizeof(double)="<<sizeof(double)<<endl;
    cout<<"-----------------------------------------------------------------------"<<endl;
    cout<<"sizeof(Packed)="
        <<sizeof(Packed)<<endl;

    Packed x;
    x.i='c';
    cout<<"x.i='c';sizeof(x.i)="<<sizeof(x.i)<<"\tx.i="<<x.i<<endl;

    x.d=3.1415926;
    cout<<"x.d=3.1415926;;sizeof(x.d)="<<sizeof(x.d)<<"\tx.d="<<x.d<<endl;

    cout<<"-----------------------------------------------------------------------"<<endl;
    cout<<"x.i="<<x.i<<endl;

    system("pause");
    return 0;
}

【ThinkingInC++】14、联合体使用

时间: 2024-11-05 16:23:15

【ThinkingInC++】14、联合体使用的相关文章

进程间通信 详解

进程间通信(IPC)介绍 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息. IPC的方式通常有管道(包括无名管道和命名管道).消息队列.信号量.共享存储.Socket.Streams等.其中 Socket和Streams支持不同主机上的两个进程IPC. 以Linux中的C语言编程为例. 一.管道 管道,通常指无名管道,是 UNIX 系统IPC最古老的形式. 1.特点: 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端.

【ThinkingInC++】36、联合体

/** * 书本:[ThinkingInC++] * 功能:联合 * 时间:2014年9月6日14:51:40 * 作者:cutter_point */ #include<iostream> using namespace std; union U { private: int i; float f; public: U(int a); U(float b); ~U(); int read_int(); float read_float(); }; U::U(int a) { i=a; } U

结构体/联合体 所占用内存

1 #include "stdafx.h" 2 #include <iostream> 3 using namespace std; 4 5 typedef struct Parameter{ 6 int a; 7 long b; 8 double c; 9 int d; 10 }Parameter; 11 12 typedef union Para{ 13 unsigned a; 14 double b; 15 long c; 16 int d; 17 }Para; 18

C++中联合体(union)的使用

1 typedef union para 2 { 3 double tmp[10]; 4 struct 5 { 6 double a; 7 double b; 8 double c; 9 double d; 10 }NP; 11 }NPara; 12 //或者如下所示 13 union para 14 { 15 double tmp[10]; 16 struct 17 { 18 double a; 19 double b; 20 double c; 21 double d; 22 }NP; 23

第14章 探索虚拟内存

14.1 系统信息 (1)获取系统信息GetSystemInfo函数中的SYSTEM_INFO参数 字段 描述 WORD wProcessorArchitecture或 wReserved 联合体.为今后扩展而保留,请勿使用 DWORD dwPageSize 表示CPU页面的大小.在x86和x64机器中,该值为4KB(4096字节),在IA-64机器中,该值为8K字节(8192字节) LPVOID lpMinimumApplicationAddress 给出每个进程可用地址空间中最小的内存地址.

【ThinkingInC++】76、设计模式

第十章 设计模式 10.3 简化习语 10.3.1 信使 他将消息封装到一个对象中到处传递,而不是将消息的所有片段分开进行传递. MessengerDemo.cpp /** * 书本:[ThinkingInC++] MessengerDemo.cpp * 功能:将消息封装到一个对象中到处传递 * 时间:2014年10月29日17:54:53 * 作者:cutter_point */ #include <iostream> #include <string> using namesp

【ThinkingInC++】57、位拷贝和初始化

HowMany.cpp /** * 书本:[ThinkingInC++] * 功能:位拷贝和初始化 * 时间:2014年9月21日17:14:30 * 作者:cutter_point */ //位拷贝拷贝的是地址,而值拷贝则拷贝的是内容. #include <fstream> #include <cstring> using namespace std; ofstream out("HowMany.txt"); class HowMany { static in

C语言联合体的灵活运用

一段联合体的程序如下 1 #include <stdio.h> 2 typedef union { 3 unsigned int a32[2]; 4 unsigned short a16[1]; 5 unsigned char a8[1]; 6 } T_union; 7 8 void main() 9 { 10 int i; 11 T_union v={0}; 12 for(i=0;i<8;i++) v.a8[i]=i; 13 14 printf("占用空间:%d\n"

【ThinkingInC++】49、带内联函数的Stash

Stash4.h /** * 书本:[ThinkingInC++] * 功能:带内联函数的Stash * 时间:2014年9月12日08:16:13 * 作者:cutter_point */ #ifndef STASH4_H_INCLUDED #define STASH4_H_INCLUDED #include "../require.h" #include <iostream> class Stash { int size; //每个空间存储块的字节长度 int quan