関数と演算子の使い方


【関数のプロトタイプ】

MPLAB-C18の関数はそれが使われる前に必ず定義されていなければ
なりません。そこでプログラムの最初で定義だけをします。
その事前定義のことを「関数プロトタイプ」と呼びます。このプロトタイプの
記述スタイルは下記となっています。

    型宣言 関数名 (パラメータ群)

 《例》
    unsigned char AddOne (unsigned char x);

【関数の記述方法】

実際の関数の本体の記述は下記のような形が基本となります。

  型宣言 関数名 (パラメータ群)
  {
    パラメータ型定義
    
    関数内容記述

    return(parameter);

  }

ここでreturn文のパラメータ群は関数からの戻り値がある場合に使います。
この戻り値はソフトウェアスタックとしてメモリ上に展開されて戻ります。
C言語の場合には変数名で扱えば実際の所在を気にする必要は無いの
ですが、インラインでアセンブラを使う場合にこのパラメータを引き継ぐ場合
には、関数から戻った時点でパラメータ群の格納アドレスポインターを
"FSR0"に格納していますので、これをポインターにして間接アドレス指定で
取り出します。

【演算子の種類と使い方】

MPLAB-C18では演算子として下表のものが用意されています。

種別 記号 機能 使用例と意味内容
算術演算子 +
-
*
/
%
加算
減算
積算
除算
-b
count - 163


intのみ
関係演算子 >
>=
<
<=
==
!=
大きい
等しいか大きい
小さい
等しいか小さい
等しい
等しくない
count > 0


value <= MAX

input != BADVAL
論理演算 &&
||
!
論理AND
論理OR
論理NOT
NotFound && (i <= MAX)
! (Value <= LIMIT)
ビット演算 &
|
^
~
>>
<<
ビットAND
ビットOR
ビットXOR
1の補数
ビット右シフト
ビット左シフト
Flags & MASK
Flags ^ 0x07
Val << 2
代入省略形 =
+=
-=
*=
/=
|=
^=
>>=
<<=
単純代入
加算後代入
減算後代入
積算後代入
除算後代入
論理OR後代入
論理XOR後代入
右シフト後代入
左シフト後代入
a+=b+c  ;a=a+b+c
a*=b+c  ;a=a*(b+c)
a*=(b+c) ;a=a*(b+c)
r/=s    ;r=r/s
m*=5   ;m=m*5
Flags|=SETBIT ;Flags=Flags | SETBIT
Div2>>=1 ;Div2=Div>>1
その他 sizeof(type ) 指定変数のバイト数 sizeof a
sizeof(int)
sizeof(struct data)  ;struct全体



   目次ページへ