画面下の「▶」で再生開始、「⏸」で一時停止
画面右下の「>」で次頁へ、「<」で前頁へ
青字下線の部分は、まとめプリントの穴埋め
「作業」のところでは、ファイルをダウンロードしてコンパイル・実行
教科書 p.169
教科書 pp.170–173
「計算機入門」などで扱っている内容なので、ここでは説明を割愛する。
教科書 p.174
int 型と char 型をもう少し詳しく扱う。
教科書 p.174
int 型には型指定子 (type specifier) をつけられる
【符号に関する型指定子】
signed | 符合付き(負の数も扱える) |
unsigned | 符合なし(正の数と 0 のみ扱える) |
教科書 p.175
【サイズに関する型指定子】
short | 範囲が狭いがメモリーを節約できる |
long | メモリーを食うが、範囲が広い |
教科書 p.175
型指定子の使用例:
signed short int foo;
unsigned int bar;
unsigned long baz;
教科書 pp.176–177
さまざまな整数型、文字型が表せる値の最小・最大値をマクロとして集めたヘッダーである。
INT_MAX, ULONG_MAX などが定義されている。
作業: List 7-1 を実行する。(プリント Q 7.1.1)
CHAR_BIT教科書 pp.178–179
説明を割愛する。教科書を読んでおくこと。
sizeof 演算子教科書 pp.179–180
sizeof (型名)
指定した型のサイズ(単位: バイト)を返す。
例:
printf("sizeof(long) = %u\n",
(unsigned)sizeof(long));
作業: List 7-3 を実行する。
size_t 型と typedef 宣言教科書 p.181
typedef 宣言は型の別名をつける。構造体・ポインターを学習したあとはよく使う。
一般形:
typedef 型 新しい型名 ;
例:
typedef unsigned size_t;
教科書 pp.181–183
sizeof 式
式(通常は変数)のサイズを返す。
式が配列の場合は配列全体のサイズを返す。
これから配列の要素数を計算することもできる。
例:
int n = sizeof(a) / sizeof(a[0]);
ただし関数の引数として受け取った配列ではそうならない。
(配列の要素数の計算もできない。)
作業:
sizeof.c
を実行する。
#include <stdio.h>
void foo(int x[]) {
printf("sizeof(x) = %u\n", (unsigned)sizeof(x));
}
int main(void) {
int a[] = { 1, 2, 3, 4, 5 };
printf("sizeof(a) = %u\n", (unsigned)sizeof(a));
foo(a);
return 0;
}
教科書 pp.183–193
「計算機入門」などで扱っている内容なので、説明を割愛する。
ビット演算やシフト演算は組込みソフトウェアの開発では 必須になる。
教科書 p.194
8 進定数は先頭に「0」を、
16 進定数は先頭に「0x」をつけて表記する。
| 10 進 | 8 進 | 16 進 |
|---|---|---|
| 48 | 060 | 0x30 |
| 65 | 0101 | 0x41 |
| 97 | 0141 | 0x61 |
教科書 p.195
123U, 98765L などの接尾語を使う書き方がある。
教科書 p.196
printf 関数で整数を 8 進数または 16 進数で表示するために、
それぞれ、%o,
%x
(A 〜 F を大文字にしたいときは %X)
という書式指定を用いる。
例:
printf("%o\n", 16); /* 20 と出力 */
printf("%x\n", 46); /* 2e と出力 */
printf("%X\n", 29); /* 1D と出力 */
作業: List 7-8 を実行する。
教科書 p.197
説明を割愛する。教科書を読んでおくこと。
教科書 p.198
double 型のほかに float 型、
long double 型がある。
通常は double 以外はあまり使わない。
組込み系では float を使うことがあるかもしれない。
教科書 pp.198–200
浮動小数点型は「計算機入門」などで扱っている内容なので、説明を割愛する。
定数には 1.23F, 3.14L などの接尾語を使う書き方、
6.02E23 など指数表記などがある。
教科書 p.201
sin, cos, sqrt
(square root — 平方根), exp, log などの
数学関数のプロトタイプ宣言が集められているヘッダーである。
gcc では、数学関数を使ったプログラムをコンパイルするとき、大抵 -lm オプションが必要である。
gcc -lm list0710.c
作業: List 7-10 を実行する。
教科書 pp.202–203
浮動小数点数は、10 進の有限小数を正確に表現できるとは限らない。
#include <stdio.h>
int main(void) {
double x;
for (x = 0.0; x <= 1.0; x += 0.01) {
printf("%.60f\n", x); /* 小数第 60 位 まで表示 */
}
return 0;
}
作業: 上記のプログラムを実行する。
教科書 pp.202–203
誤差が蓄積するので、繰返しを制御する変数には、できるだけ浮動小数点数型(float, double)は
使わない。
教科書 pp.202–203
/* 悪い(誤差が蓄積する) */
double f;
for (f = 0.0; f < 1.0; f += 0.01) { … }
/* 良い(誤差が蓄積しない)*/
int i;
for (i = 0; i < 100; i++) {
double f = i / 100.0; …
}
教科書 p.204
教科書 pp.204–205
優先順位や結合性をすべてを覚える必要はないが、必要に応じて表を調べられ るように、どのような演算子があるかくらいは覚えておきたい。(Table 7-11)
教科書 pp.206–207
暗黙の型変換やキャストのときの詳しい規則は、必要になったら調べる。