【C言語】iso646.hを使って代替表記を使う【標準ライブラリ】
iso646.hを使って出来ることと典型的な使い方
iso646.hとは
iso646.h
は、C言語で一部の演算子に対する代替表記(alternative tokens)を定義するヘッダファイルです。
C90(ANSI C)で標準化され、C++でも使用できます。
もともとは、ASCII以外の文字セットを使用する環境(特に一部の国のキーボード)で、
特定の記号(例えば &&
や ||
)が入力しづらいケースを考慮して導入されました。
代替表記の一覧
iso646.h
をインクルードすると、以下のような記号の代替表記が利用できます。
通常の記号 | 代替表記 |
---|---|
&& |
and |
|| |
or |
! |
not |
& |
bitand |
| |
bitor |
^ |
xor |
~ |
compl |
&= |
and_eq |
|= |
or_eq |
^= |
xor_eq |
iso646.hを使う理由
iso646.h
を使う主な理由は以下の通りです:
- 記号を入力しにくいキーボードレイアウトへの対応
- コードの可読性を向上(特に英単語として意味を持つため)
- C++と共通の記述が可能(C++でも同じ表記が使える)
具体的な使用例
基本的な条件分岐
#include <stdio.h>
#include <iso646.h>
int main() {
int a = 5, b = 10;
if (a < b and b > 0) {
printf("a は b より小さく、b は 0 より大きい\n");
}
return 0;
}
ビット演算
#include <stdio.h>
#include <iso646.h>
int main() {
int x = 5, y = 3;
int result = x bitand y;
printf("5 & bitand 3 = %d\n", result);
return 0;
}
論理演算の代替
#include <stdio.h>
#include <iso646.h>
int main() {
int x = 1, y = 0;
if (x or y) {
printf("x または y のいずれかが真\n");
}
if (not y) {
printf("y は偽\n");
}
return 0;
}
使用時の注意点
iso646.h
を使う際の注意点:
- 代替表記はC言語の標準ですが、一般的なコードではあまり使われない
- 他のプログラマーが馴染みがない可能性があり、可読性が低下することもある
- 一部の古いコンパイラではサポートが不完全な場合がある
まとめ
iso646.h
は、C言語の論理演算子やビット演算子に対する代替表記を提供するヘッダファイルです。
特に記号の入力が困難な環境で有効ですが、可読性の観点からあまり一般的には使用されません。
とはいえ、C++との統一性や特定のケースでは有用なため、知っておくと役立つ知識です。