Freescale MC68HC908Q


CodeWarrior for HC(S)08 Special Edition(無料)で C++ を使ってみる

日本のフリースケールおよびメトロワークスでは CodeWarrior の 無料版(Special Edition) では C++ をサポートしていないという立場にあるようです。しかし米国 Metrowerks 社のサイトからダウンロードできる Buyers Guide によるとSpecial Edition でも 1KB 以下のサイズに限って C++ が使えると書いていました。
p.6 C++ is limited to 1Kbytes of code in the Special and the Standard Edition.
また、p.10〜11 の表にもそのように記載されています。なお、製品版 Standard Edition は有料で C++ のコンパイルサイズを上げられます。製品版 Professional Edition では最初から C++ をフルサポートしています。
ちなみに Special Edition は C 言語は 16KB 制限です。アセンブラは制限なしです。


C++ が気になって、ちょっと動かそうとしてみました。 (8/18/2004)

メトロワークスの日本のサイトに見に行ってみると、C++ に関する記述
製品版の CodeWarrior にしか書いていないようです。
無料の Special Edition C しか書いていません。

それでも試してみる価値はあると思い、New Project C++ を選んで
みました! すると、C を選んだときと同じソースファイルおよび
ヘッダファイルができていました。ただし拡張子が *.cpp になって
いるという違いがありました。
もちろん問題なく MAKE できました。

C++ のソースってどんな顔をしているのかな? と期待していたのに
これじゃ全然ワカリマセン。C++ C をほぼ包含していますから、
これでも良いわけですが。本当に C++ の書き方で書いたものが
CW for HC08 Special Edition
で動くのかは判断できませんでした。


コンパイラ自体は C++ 対応みたいです。 (9/5/2004)

一般的な C++ について少し勉強しました。そこで下記のようなコードを
試してみたらエラー無く通りました。

class cls_aaa
{
  int var_bbb;

public:
  void func_ccc( int n )
  {
    var_bbb = n;
    return;
  }
};

void main( void )
{
  cls_aaa ddd;

  ddd.func_ccc( 1000 );
  return;
}

これは C++ の特徴の一つである「クラス」を使ってみたところです。
CW for HC08 Special Edition でもコンパイラ自体は C++ 対応みたいです

しかし、

#include < iostream >

とか

#include < string >

では「そんなの見つかりません」と言われますから、必要なライブラリの類が
一切付いていないということのようです。

これらが無いと、

using namespace std; しておいてから

cout << "Hello, World!" << endl;

というような、C++ では当たり前のストリング操作もできません。
個人的には C++ の勉強には使えないのではないかと思うのですが・・・
それでも利用価値を見出せる人もいるかもしれません。なんせ自分では
普段 C++ を使っていないのでそのへんはよく判りません。

と、書いてから気が付きました。Cも普通の勉強に出てくるような
stdio.h とか stdlib.h それに string.h に含まれる標準関数をまったく
使わずに普段プログラミングをしています。そう考えると、この何もない
C++ の環境でも便利に使えるのかもしれません!


このホームページで紹介した内容を実施する場合は全て自己責任において行っていただきますようお願いします。
不明点や質問、感想などはこのホームページの掲示板へお願いします。