C言語の規格は結構いい加減で、処理系依存と言うcompilerが勝手に決めてよ い部分が何箇所かあります。そのため、AVRではうまく動くプログラムがH8に もっていくと動かない等といったことが起こりえます。 せっかく書いたプログラムが別のマイコンでは使えないというのも寂しいので、 移植性のよいプログラムを書くための注意点をあげてみましょう。 C言語の基本型について 整数型 処理系依存で一番有名なのは、sizeof(int)でしょう。C言語の 整数型はshort,int,long とありま すが、それぞれ何bitであるかは、compilerが自由に決めて良く、 sizeof(short) <= sizeof(int) <= sizeof(long)であることだ けが規格で決められています。 ですので、shortもintもlongも 16bitという処理系もあれば、shortが16bit、in
これは Cygwin 上の gcc での結果で Visual C++ を利用した場合 long double は 8Byte となります。 あと、 sizeof の結果は char いくつ分のサイズかを返す訳ですが、今回実験している環境だけではなく、 ほとんどの処理系では char は 8bit(1Byte)であるため(っていうかそうじゃない処理系ってあるのかなぁ)、 ここでは sizeof の返す値の単位を Byte であるとして話を進めています。 さらに、何度も書いていますがここでやっていることは、ほとんどが処理系依存で、 このような結果になることを前提にプログラムを書くと、非常に移植性の低いものになってしまいます。 また、同じ環境でもコンパイラの最適化の影響とかを受ける可能性もないわけではありません。 ハードウェア的にどうのといってる部分がいっぱいありますが、 正直なところ私はそっち
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く