ページへ戻る

− Links

 印刷 

FDIII-HC Starter Kit Guide Chapter1.4 のバックアップソース(No.6) :: Besttechnology

knowledge:FDIII-HC Starter Kit Guide Chapter1.4 のバックアップソース(No.6)

« Prev[4]  Next »[5]
*C言語の基礎 [#qde98ab5]
このページではFREEDOMライブラリを使用した場合のC言語について説明をします。~
通常のC言語と若干異なる場合があります。

**基本 [#o84a22ef]
***2進数 [#ea68bb60]
私たちが普段使っているのは10進数です。

***ビット [#y24bb3d4]

***バイト [#q364ee42]

***変数 [#ib843ca5]
変数は数値や文字を置いておく入れ物です。~
使い始める前に「このようなデータを入れるこんな名前の入れ物を使います」と宣言しなければなりません。
#ref(variable1.png,100%)
「int型のデータを入れるaという名前の入れ物を使います」と宣言しています。
int型というのは4バイトの整数という意味です。~
※システムによっては異なる場合があります
#ref(variable2.png,100%)
 a=24;
は変数aに24という整数を入れることになります。

***データ型 [#n1ebdc94]
変数を宣言する際にはどのようなデータなのかを言う必要がありました。
この「どのようなデータなのか」というのを型と言います。
型には以下があります。
|char|1バイト|-128~127|
|unsigned char|1バイト|0~255|
|short|2バイト|-32768~32767|
|unsigned short|2バイト|0~65535|
|long|4バイト|-2147483648~2147483647|
|unsigned long|4バイト|0~4294967295|
|int|4バイト|-2147483648~2147483647|
|unsigned int|4バイト|0~4294967295|

***fd_printf文 [#ua9b7908]
文字や変数の値などを表示する時に使います。~
通常のC言語ではprintfと書きますが、FREEDOMライブラリではfd_printfと書きます。
#ref(printf1.png,100%)
fd_printfの()内の"に挟まれた文字をそのまま表示しています。
----
#ref(printf2.png,100%)
aという変数の値を表示しています。変数の値は" "内の%dの部分に表示されます。%dの部分に何を表示するかを" "の後に,で区切って書きます。~
%dは整数を表示します。その他に以下があります。~
|%d|整数を10進数で表示|5, -17 など|
|%c|文字|'G' など|
|%s|文字列|"Hello" など|
|%o|整数を8進数で表示|12, 23 など|
|%b|整数を2進数で表示|10, 1011 など|
|%u|整数を符号なし10進数で表示|37,2093 など|
|%x|整数を16進数で表示|1A, B89E など|

----
#ref(printf3.png,100%)
%とdの間に数値を入れるとその桁数で表示します。空いている桁にはスペースが入れられます。~
さらに数値の前に0を付けると空いている桁には0が入れられます。~

 \n
は改行です。その他に
 \r
と書くと復帰(同じ行の頭から再び表示する)になります。

**制御文 [#b3400d86]
***if文 [#c6144380]
if文は「もし○○だったら△△する。それ以外だったら□□する」というような、条件によって実行することを分ける時に使います。
#ref(if1.png,100%)
「もし○○だったら△△する」というif文です。~

()内の条件が成り立っている時は{}内の処理を実行します。成り立っていない時は何もしません。
 main() {
   int a =10;

   if (a > 5) {
     a = a - 1;
   }
 }
もし変数aが5より大きかったらaから1引くというプログラムです。
----
#ref(if2.png,100%)
「もし○○だったら△△する。それ以外だったら□□する」というif文です。~

()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時はelse後の{}内の処理を実行します。
 main() {
   int a =10;

   if (a > 5) {
     a = a - 1;
   }
   else {
     a = a + 1;
   }
 }
もし変数aが5より大きかったらaから1引いて、それ以外(aが5以下)なら1足すというプログラムです。
----
#ref(if3.png,100%)
「もし○○だったら△△する、それ以外でもし●●だったら□□する、更にそれ以外は■■する」というif文です。~

最初のifの()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時は次のelse ifへ行きます。else ifの()内の条件が成り立っている時はその直後の{}内の処理を実行し、成り立っていない時はelse後の{}内の処理を実行します。
 main() {
   int a =10;

   if (a > 5) {
     a = a - 1;
   }
   else if (a < 0) {
     a = 0;
   }
   else {
     a = a + 1;
   }
 }
もし変数aが5より大きかったらaから1引いて、それ以外(aが5以下)でaが0より小さかったらaに0を代入して、更にそれ以外(aは0以上,5以下)ならaに1足すというプログラムです。

***for文 [#l1911408]
同じ処理を繰り返す時に使います。通常はカウンタを使って繰り返す回数を決めます。
#ref(for1.png,100%)
「iの初期値を0とし、iが5より小さい間は処理を繰り返す。ただし処理を1回行ったらiを1増やす。」というfor文です。~

事前にカウンタを変数として宣言しておきます。
処理を行うごとにカウンタが0,1,2,3,4と増え5になったら繰返しを止めます。~
i++はi=i+1と同じ意味です。
 main() {
   int i, a = 1;

   for (i = 0; i < 5; i++) {
     a = a * 3;
   }
 }
a×3を5回繰り返す(3の5乗を計算する)プログラムです。

***while文 [#of5e8829]
同じ処理を繰り返す時に使います。for文との違いは、繰り返す回数が決まっていない時に使うということです。
#ref(while1.png,100%)
()内の条件が成り立っている間は処理を繰り返し実行し、条件が成り立たなくなったら繰返しを止めます。
 main() {
   int i;

   while (i < 1000) {
     i = i * 2;
   }
 }
i×2を繰り返し、iが1000より少ない状態でなくなったら(1000以上になったら)繰り返しを止めるというプログラムです。

***switch文 [#x577fb19]
変数や式の値によって処理を分けるときに使用します。
#ref(switch1.png,100%)
「変数・式が値1なら処理Aを実行、値2なら処理Bを実行、どれにも当てはまらなければ処理Cを実行する」というswitch文です。~

switch文の()内の変数又は式の値がcaseの後の値と同じならその直後の処理を行います。処理後はbreak;を書きましょう。忘れるとそのまま次の処理も行ってしまいます。defaultはどれにも当てはまらない場合です。
 main() {
   char c = '+';
   int a, m = 5, n = 3;

   switch(c) {
     case '+':
       a = m + n;
       break;
     case '-':
       a = m - n;
        break;
     default:
       a = 0;
   }
 }
cが+ならmとnをたしてaに代入、cが-ならmからnを引いてaに代入、それ以外ならaに0を代入するというプログラムです。

[[FDIII-HC Starter Kit Guid]]に戻る

« Prev[4]  Next »[5]