このページでは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 など| |%f|実数|0.3, 3.8 など| |%c|文字|'G' など| |%s|文字列|"Hello" など| |%o|整数を8進数で表示|12, 23 など| |%b|整数を2進数で表示|10, 1011 など| |%u|整数を符号なし10進数で表示|37,2093 など| |%x|整数を16進数で表示|1A, B89E など| ※FREEDOMライブラリのfd_printfでは%fを使用できません。 ---- #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]]に戻る
(This host) = http://www.besttechnology.co.jp