画面下の「▶」で再生開始、「⏸」で一時停止
画面右下の「>」で次頁へ、「<」で前頁へ
青字下線の部分は、まとめプリントの穴埋め
「作業」のところでは、ファイルをダウンロードしてコンパイル・実行
教科書 pp.181–225
教科書 pp.182–185
「計算機入門」などで扱っている内容なので、ここでは説明を割愛する
教科書 p.186
int
型と char
型をもう少し詳しく扱う
教科書 p.186
int
型には型指定子 (type specifier) をつけられる
【符号に関する型指定子】
unsigned | 符合なし(正の数と 0 のみ扱える) |
signed | 符合付き(負の数も扱える) |
教科書 p.186
【サイズに関する型指定子】
short | 範囲が狭いがメモリーを節約 |
long | メモリーを食うが、範囲が広い |
long long | さらに… |
教科書 p.175186
型指定子の使用例:
signed short int foo;
unsigned int bar;
unsigned long baz;
教科書 p.188
教科書を読んでおくこと
教科書 pp.188–190
さまざまな整数型、文字型が表せる値の最小・最大値をマクロとして集めたヘッダー
INT_MAX
, ULONG_MAX
などが定義されている
作業: List 7-1 を実行する(プリント Q 7.1.1)
CHAR_BIT
教科書 pp.190–192
説明を割愛する。教科書を読んでおくこと
sizeof
演算子教科書 pp.192–193
sizeof (型名)
指定した型のサイズ(単位: バイト)を返す
例:
printf("sizeof(long) = %u\n",
(unsigned)sizeof(long));
作業: List 7-3 を実行する。
size_t
型と typedef
宣言教科書 p.194
typedef 宣言は型の別名をつける
一般形:
typedef 型 新しい型名 ;
例:
typedef unsigned size_t;
構造体・ポインターを学習したあとはよく使う
教科書 p.196
sizeof 式
式(通常は変数)のサイズを返す
式が配列の場合は配列全体のサイズを返す
これから配列の要素数を計算することもできる
例:
int n = sizeof(a) / sizeof(a[0]);
作業: まとめのプリント Q 7.1.2 をやってみる
ただし関数の引数として受け取った配列ではそうならない (配列の要素数の計算もできない)
作業: 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.197–209
「計算機入門」などで扱っている内容なので、説明を割愛する
ビット演算やシフト演算は、組込みソフトウェアの開発では 必須になる
教科書 p.210
8 進定数は先頭に「0
」を、
16 進定数は先頭に「0x
」をつけて表記する
10 進 | 8 進 | 16 進 |
---|---|---|
48 | 060 | 0x30 |
65 | 0101 | 0x41 |
97 | 0141 | 0x61 |
教科書 p.211
123U
, 98765L
などの接尾語を使う書き方がある
教科書 p.212
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 7-9 を実行する
教科書 p.213
説明を割愛する。教科書を読んでおくこと
教科書 p.214
double
型のほかに float
型、
long double
型がある
double
以外はあまり使わないfloat
を使うことがあるかもしれない教科書 pp.214–216
浮動小数点型は「計算機入門」などで扱っている内容なので、説明を割愛する
1.23F
, 3.14L
などの接尾語を使う書き方、
6.02E23
など指数表記などがある教科書 p.217
sin
, cos
, sqrt
(square root — 平方根), exp
, log
などの
数学関数のプロトタイプ宣言が集められているヘッダーである
教科書 pp.218–219
浮動小数点数は、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;
}
作業: 上記のプログラムを実行する
作業: まとめのプリント Q 7.1.3 をやってみる
教科書 pp.218–219
誤差が蓄積するので、繰返しを制御する変数には、できるだけ浮動小数点数型(float
, double
)は
使わない
教科書 pp.218–219
/* 悪い(誤差が蓄積する) */
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.220
教科書 pp.220–221
優先順位や結合性をすべてを覚える必要はないが、必要に応じて表を調べられ るように、どのような演算子があるかくらいは覚えておきたい (Table 7-117-13)
教科書 pp.222–223
暗黙の型変換やキャストのときの詳しい規則は、必要になったら調べる