Iso646.h
From Wikipedia, the free encyclopedia
代替つづり
iso646.hをインクルードすることによって、以下に示すマクロを使用できるようになる。それぞれが演算子と対応している。[1]
| 代替つづり | 演算子 |
|---|---|
| and | && |
| and_eq | &= |
| bitand | & |
| or | || |
| or_eq | |= |
| bitor | | |
| xor | ^ |
| xor_eq | ^= |
| compl | ~ |
| not | ! |
| not_eq | != |
iso646.hの利用例
iso646.hを利用する場面はほとんどなく、利用する場合の理由は、ISO646バリアント文字セットでCの記号が記述できなかったためである。[2] 現在はUTF-8などに移行しているためこのヘッダーを利用する必要はない。
ここではあえてiso646.hを利用した記述の例を記述する。
条件分岐の演算
以下のソースコードはiso646.hを利用したand(どちらも成立していればtrue)のサンプルである。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
if(((2 + 3) == 5) and ((4 - 3) == 1))
{
puts("SUCCESS");
}
return 0;
}
上記のソースコードは以下のソースコードと等価である。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
if(((2 + 3) == 5) && ((4 - 3) == 1))
{
puts("SUCCESS");
}
return 0;
}
ビットごとの演算子
以下はiso646.hを利用したor演算のサンプルである。 bitorとなっている部分をbitandに変えればand演算になる。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
if((1 bitor 2) == 3)
{
puts("SUCCESS");
}
return 0;
}
上記のソースコードは以下のソースコードと等価である。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
if((1 | 2) == 3)
{
puts("SUCCESS");
}
return 0;
}
代入演算子
以下のソースコードははiso646.hを利用したor演算のサンプルである。
or_eqとなっている部分をand_eqに変えればand演算になる。 また、or_eqをxor_eqに変えるとxor演算を行うソースコードになる。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
int x = 1;
x or_eq 2;
if(x == 3)
{
puts("SUCCESS");
}
return 0;
}
上記のソースコードは以下のソースコードと等価である。
#include <iso646.h>
#include <stdio.h>
int main(void)
{
int x = 1;
x |= 2;
if(x == 3)
{
puts("SUCCESS");
}
return 0;
}