共用体(union)

/*
  Program    : union.c
  Comment    : 共用体
*/

#include <stdio.h>

union smp{
  char  b08;
  short b16;
  int   b32;
};

main(){
  union smp var;

  var.b08=2;
  puts("---------------");
  puts("var.b08=2");
  printf("var.b08=0x      %02x=%d\n",var.b08,var.b08);
  printf("var.b16=0x    %04x=%d\n",var.b16,var.b16);
  printf("var.b32=0x%08x=%d\n",var.b32,var.b32);
  printf("var ADDRESS\n");
  printf("var.b08=0x%x +=%%0x%x\n",&var.b08,&var.b08+1);
  printf("var.b16=0x%x +=%%0x%x\n",&var.b16,&var.b16+1);
  printf("var.b32=0x%x +=%%0x%x\n",&var.b32,&var.b32+1);

  var.b16=260;
  puts("---------------");
  puts("var.b16=260");
  printf("var.b08=0x      %02x=%d\n",var.b08,var.b08);
  printf("var.b16=0x    %04x=%d\n",var.b16,var.b16);
  printf("var.b32=0x%08x=%d\n",var.b32,var.b32);

  var.b32=66000;
  puts("---------------");
  puts("var.b32=66000");
  printf("var.b08=0x      %02x=%d\n",var.b08,var.b08);
  printf("var.b16=0x    %04x=%d\n",var.b16,var.b16);
  printf("var.b32=0x%08x=%d\n",var.b32,var.b32);
}

/*************************************************************** Result
---------------
var.b08=2
var.b08=0x      02=2
var.b16=0x    0200=512
var.b32=0x02000000=33554432
var ADDRESS
var.b08=0x7fff7b74 +=%0x7fff7b75
var.b16=0x7fff7b74 +=%0x7fff7b76
var.b32=0x7fff7b74 +=%0x7fff7b78
---------------
var.b16=260
var.b08=0x      01=1
var.b16=0x    0104=260
var.b32=0x01040000=17039360
---------------
var.b32=66000
var.b08=0x      00=0
var.b16=0x    0001=1
var.b32=0x000101d0=66000
**********************************************************************/


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-05-28 (木) 12:37:09 (1547d)