12: 2010-01-18 (月) 13:15:15 sho | 13: 2010-01-19 (火) 14:47:52 sho | ||
---|---|---|---|
Line 45: | Line 45: | ||
この「このようなデータ」を型と言います。~ | この「このようなデータ」を型と言います。~ | ||
型には以下があり、それぞれサイズと入る値の範囲が異なります。 | 型には以下があり、それぞれサイズと入る値の範囲が異なります。 | ||
- | |型の名前|サイズ|入る値の範囲| | + | |
- | |char|1バイト|-128~127| | + | | 型の名前 | サイズ | 入る値の範囲 | |
- | |unsigned char|1バイト|0~255| | + | | char | 1バイト | -128~127 | |
- | |short|2バイト|-32768~32767| | + | | unsigned char | 1バイト | 0~255 | |
- | |unsigned short|2バイト|0~65535| | + | | short | 2バイト | -32768~32767 | |
- | |long|4バイト|-2147483648~2147483647| | + | | unsigned short | 2バイト | 0~65535 | |
- | |unsigned long|4バイト|0~4294967295| | + | | long | 4バイト | -2147483648~2147483647 | |
- | |int|4バイト|-2147483648~2147483647| | + | | unsigned long | 4バイト | 0~4294967295 | |
- | |unsigned int|4バイト|0~4294967295| | + | | int | 4バイト | -2147483648~2147483647 | |
+ | | unsigned int | 4バイト | 0~4294967295 | | ||
+ | |||
+ | 変数は数値や文字を置いておく入れ物でした。 | ||
+ | 大きい入れ物なら大きな数字も入れられるので、変数のサイズが大きい型を選べば良いと思うかもしれません。 | ||
+ | しかしコンピュータが大きいサイズの変数を扱うには、小さいサイズの変数に比べて時間も手間も掛かります。 | ||
+ | コンピュータの負担を減らすため、使用する値の範囲によってできるだけ小さいサイズの型を選びましょう。 | ||
***演算子 [#reb3a365] | ***演算子 [#reb3a365] | ||
Line 98: | Line 104: | ||
| ! | !(a==5) | aは5ではない | | | ! | !(a==5) | aは5ではない | | ||
| || | a<3 || 8<a | aは3未満または8より大きい | | | || | a<3 || 8<a | aは3未満または8より大きい | | ||
- | ※ || は半角です。 | + | ※ || は、上表では全角ですが、必ず半角で入力して下さい。 |
***fd_printf文 [#ua9b7908] | ***fd_printf文 [#ua9b7908] | ||
- | 文字や変数の値などを表示する時に使います。~ | + | 文字や変数の値などを[[Chapter1.2>FDIII-HC Starter Kit Guide Chapter1.2]]でインストールしたSIMPLE TERM上で表示する時に使います。~ |
通常のC言語ではprintfと書きますが、FREEDOMライブラリではfd_printfと書きます。 | 通常のC言語ではprintfと書きますが、FREEDOMライブラリではfd_printfと書きます。 | ||
#ref(printf1.png,100%) | #ref(printf1.png,100%) | ||
Line 109: | Line 116: | ||
aという変数の値を表示しています。変数の値は " " 内の %d の部分に表示されます。%d の部分に何を表示するかを " " の後に , で区切って書きます。~ | aという変数の値を表示しています。変数の値は " " 内の %d の部分に表示されます。%d の部分に何を表示するかを " " の後に , で区切って書きます。~ | ||
%d は整数を表示します。その他に以下があります。~ | %d は整数を表示します。その他に以下があります。~ | ||
- | |%d|整数を10進数で表示|5, -17 など| | + | | 書式指定 | 意味 | 例 | |
- | |%c|文字|'G' など| | + | | %d | 整数を10進数で表示 | 5, -17 など | |
- | |%s|文字列|"Hello" など| | + | | %c | 文字 |'G' など | |
- | |%o|整数を8進数で表示|12, 23 など| | + | | %s | 文字列 |"Hello" など | |
- | |%b|整数を2進数で表示|10, 1011 など| | + | | %o | 整数を8進数で表示 | 12, 23 など | |
- | |%u|整数を符号なし10進数で表示|37, 2093 など| | + | | %b | 整数を2進数で表示 | 10, 1011 など | |
- | |%x|整数を16進数で表示|1A, B89E など| | + | | %u | 整数を符号なし10進数で表示 | 37, 2093 など | |
+ | | %x | 整数を16進数で表示 | 1A, B89E など | | ||
---- | ---- | ||
#ref(printf3.png,100%) | #ref(printf3.png,100%) | ||
- | % と d の間に数値を入れるとその桁数で表示します。空いている桁にはスペースが入ります。~ | + | % と d の間に入る数値は桁数を表します。空いている桁にはスペースが入ります。~ |
さらに数値の前に 0 を付けると空いている桁には 0 が入ります。~ | さらに数値の前に 0 を付けると空いている桁には 0 が入ります。~ | ||
Line 126: | Line 134: | ||
\r | \r | ||
と書くと復帰(同じ行の頭から再び表示する)になります。 | と書くと復帰(同じ行の頭から再び表示する)になります。 | ||
+ | |||
+ | |CENTER:BGCOLOR(red):||c | ||
+ | | :idea:|お使いのブラウザ(Internet Explorer、Firefox、Safariなど)によっては、文中の¥(円記号)が\(バックスラッシュ)で表示される場合がありますが、GCC Developer Liteでは¥で表示されます。&br;また本文中のプログラムコード(プログラムを書いたもの)をGCC Developer Liteへコピーして貼り付けた場合、\は¥になりますので問題ありません。&br;※説明のためここでは¥と\を全角で書いていますが、実際には半角です。| | ||
+ | |||
***アドレス [#b45fcfd3] | ***アドレス [#b45fcfd3] | ||
Line 134: | Line 146: | ||
int a, b = 3; | int a, b = 3; | ||
a = &b; | a = &b; | ||
- | aには3ではなく、bのアドレスの値が入れられます。 | + | aには3ではなく、bのアドレスの値が入ります。 |
**制御文 [#b3400d86] | **制御文 [#b3400d86] | ||
***if文 [#c6144380] | ***if文 [#c6144380] | ||
- | if文は「もし○○だったら△△する。それ以外だったら□□する」というような、条件によって実行することを分ける時に使います。 | + | if文は「もし○○だったら△△する。それ以外だったら□□する」というような、条件によって実行を分岐する時に使います。 |
#ref(if1.png,100%) | #ref(if1.png,100%) | ||
「もし○○だったら△△する」というif文です。~ | 「もし○○だったら△△する」というif文です。~ | ||
- | () 内の条件が成り立っている時は {} 内の処理を実行します。成り立っていない時は何もしません。 | + | () 内の条件が成り立っている時は {} 内の処理を実行します。成り立っていない時は実行しません。 |
main() { | main() { | ||
int a =10; | int a =10; | ||
Line 150: | Line 162: | ||
} | } | ||
} | } | ||
- | もし変数aが5より大きかったら a から1引くというプログラムです。aは10なのでa>5が成り立っており、aから1が引かれます。 | + | もし変数aが5より大きかったら a から1を引くというプログラムです。aは10なのでa>5が成り立っており、aから1が引かれます。 |
---- | ---- | ||
#ref(if2.png,100%) | #ref(if2.png,100%) | ||
Line 166: | Line 178: | ||
} | } | ||
} | } | ||
- | もし変数a が5より大きかったら a から1引いて、それ以外(aが5以下)なら1足すというプログラムです。a は3なので a>5 は成り立たずelse内の a に1足すが実行されます。 | + | もし変数a が5より大きかったら a から1を引いて、それ以外(aが5以下)なら1を足すというプログラムです。a は3なので a>5 は成り立たずelse内の a に1を足すが実行されます。 |
---- | ---- | ||
#ref(if3.png,100%) | #ref(if3.png,100%) | ||
Line 186: | Line 198: | ||
} | } | ||
} | } | ||
- | もし変数a が5より大きかったら a から1引いて、それ以外(aが5以下)でかつ a が0より小さかったら a に0を代入して、更にそれ以外(aは0以上,5以下)なら a に1足すというプログラムです。~ | + | もし変数a が5より大きかったら a から1を引いて、それ以外(aが5以下)でかつ a が0より小さかったら a に0を代入して、更にそれ以外(aは0以上,5以下)なら a に1を足すというプログラムです。~ |
a は-3なので a>5 は成り立たず、else ifの a<0 が成り立ち、aは0になります。 | a は-3なので a>5 は成り立たず、else ifの a<0 が成り立ち、aは0になります。 | ||
***for文 [#l1911408] | ***for文 [#l1911408] | ||
- | 同じ処理を繰り返す時に使います。通常はカウンタを使って繰り返す回数を決めます。 | + | 同じ処理を繰り返す時に使います。通常はカウンタ(何回繰り返したかをカウントする変数)を使って繰り返す回数を決めます。 |
#ref(for1.png,100%) | #ref(for1.png,100%) | ||
「iの初期値を0とし、iが5より小さい間は処理を繰り返す。ただし処理を1回行ったらiを1増やす。」というfor文です。~ | 「iの初期値を0とし、iが5より小さい間は処理を繰り返す。ただし処理を1回行ったらiを1増やす。」というfor文です。~ | ||
Line 217: | Line 229: | ||
} | } | ||
} | } | ||
- | i×2を繰り返し、iが1000より少ない状態でなくなったら(1000以上になったら)繰り返しを止めるというプログラムです。 | + | i×2をiに代入する処理を繰り返し、iが1000より少ない状態でなくなったら(1000以上になったら)繰り返しを止めるというプログラムです。 |
***switch文 [#x577fb19] | ***switch文 [#x577fb19] |