2014年3月9日日曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅢ部(高度な型とクラス)の12章(高度な型)、12.5(ビットフィールドとパックした構造体)、設問 12-1を解いてみる。

その他参考書籍

設問 12-1

コード(BBEdit, Emacs)

sample208.cpp

#include <iostream>

struct info {
  // intで1ビットで表すことができるのは、-1(binary 1)と0(binary 0)
  // 10進数の1を代入出来るようにするには、ビットサイズを2にすればいい
  // 2ビットの場合0(binary 00)、1(binary 01)、-2(binary 10)、-1(binary 11)
  int valid:2;
  int data:31;
};

info a_info;

int main()
{
  a_info.valid = 1;
  if (a_info.valid == 1) {
    std::cout << "a_info is valid\n";
  }
  return (0);
}

Makefile

#
# FSFのg++コンパイラ用のMakefile
#
CC=g++
CFLAGS=-g -Wall
all: sample208

sample208: sample208.cpp
 ${CC} ${CFLAGS} -o sample208 sample208.cpp

clean:
 rm sample208

入出力結果(Terminal)

$ make && ./sample208
g++ -g -Wall -o sample208 sample208.cpp
a_info is valid
$

0 コメント:

コメントを投稿