LoginSignup
1
0

More than 3 years have passed since last update.

mbed オンラインコンパイラーでandとorを記述してヒヤリした件

Last updated at Posted at 2020-07-16

ひやりハット事件発生

 mbed オンラインコンパイラーで通っていたものが、
 ローカルのmdkでコンパイルしたところエラーが発生 and とかor とか使えないとエラーがでました。

私はPascal使いでありC使い

Pascalの論路演算子 and orを使います。
C の論路演算子 & |を使います。
このandと& or と| の間違いはコンパイラに基本お任せにしていました。

問題は

mbedのオンラインコンパイラーはand とorでエラーがでません。

検証

mbed オンラインコンパイラーで以下のコードを実行します。

     uint8_t AndData1  = TestData1 and 0x01;
     uint8_t AndData0  = TestData1 and 0x00;
     uint8_t OrData1   = TestData0 or  0x01;
     uint8_t OrData0   = TestData0 or  0x00;


     PC.printf("And Data0: %2x \n\r",AndData0 );
     PC.printf("And Data1: %2x \n\r",AndData1 );
     PC.printf("Or  Data0: %2x \n\r",OrData0 );
     PC.printf("Or  Data1: %2x \n\r",OrData1 );

     TestData1 = 0xff;
     TestData0 = 0x00;
     AndData1  = TestData1 & 0x01;
     AndData0  = TestData1 & 0x00;
     OrData1   = TestData0 | 0x01;
     OrData0   = TestData0 | 0x00;

     PC.printf("And Data0: %2x \n\r",AndData0 );
     PC.printf("And Data1: %2x \n\r",AndData1 );
     PC.printf("Or  Data0: %2x \n\r",OrData0 );
     PC.printf("Or  Data1: %2x \n\r",OrData1 );

結果は以下

And Data0:  0
And Data1:  1
Or  Data0:  0
Or  Data1:  1
And Data0:  0
And Data1:  1
Or  Data0:  0
Or  Data1:  1

結論

オンラインコンパイラ―はand と orが使える。
&をandと記述しても吐き出しは問題ない
|をorと記述しても吐き出しは問題ない
ってことで問題無し

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0