Cソースでバイナリ表記をするには
テクニカル・ノート 46979
アーキテクチャ:
All
コンポーネント:
compiler
更新日:
2018/08/13 5:15
はじめに
IAR Systemsのコンパイラを使用する場合、Cのソースでバイナリ表記(例: 0b01010101)を使用することはできません。
背景
C言語では、C99およびC89のいずれにおいても、0b01010101という表記はサポートされていません。IAR Systemsでは、そのような表記をサポートするための機能拡張は行われていません(そのような機能拡張を行うと、Cのソースの移植性が低下します)。
必要な作業
解決方法は簡単です。例えば、5のバイナリ値は以下のように実装できます。
#define b0000000000000101 0x0005
このような#defineを追加することで、アプリケーション内で任意のバイナリ値を使用できます。
テンプレート
作業を簡単に行えるようにするため、この zip ファイル をダウンロードしてください。このzipファイルには2つのファイルが含まれています。
- Binary_values_8_bit.txt: 正の8ビットバイナリ値の定義が含まれています。
- Binary_values_16_bit.txt: 正の16ビットバイナリ値の定義が含まれています。
使用法
これらのファイルは、C言語でいうヘッダファイルではありません(大きい方のファイルには、64,000個を超える#defineが記述されており、取扱いにくいものです)。
これをヘッダファイルとして使用するのではなく、このテキストファイルから、必要な#defineをプロジェクトのヘッダファイルにコピーしてください。こうすると、使用しない#defineは取り込まれないため、ビルド時間のペナルティは発生しません。
全ての製品名は、それぞれの所有者の商標または登録商標です。