ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コメントコンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数指定子 / 修飾子構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子「printf」関数を使って文字を出力・表示させる方法「printf_s」関数を使って文字を出力・表示させる方法「scanf」関数を使って入力させる方法「scanf_s」関数を使って入力させる方法「getchar」関数を使って「1文字」だけ入力させる方法「gets」関数を使って「文字列」を入力させる方法
文字列 / String
文字列 / String「snprintf」関数で「配列」に文字列を書き込む方法
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
オペレーション / Operation
ファイルを操作をする方法コマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリ【assert.h】 - 診断機能【complex.h】 - 複素数計算【ctype.h】 - 文字操作【errno.h】 - エラー【fenv.h】 - 浮動小数点環境【float.h】 - 浮動小数点型の特性【inttypes.h】 - 整数型の書式の変換【iso646.h】 - 代替つづり(Alternate spellings)【limits.h】 - 整数型の大きさ【locale.h】 - 文化圏固有操作【math.h】 - 数学【setjmp.h】 - 非局所分岐【signal.h】 - シグナル操作【stdalign.h】 - アライメント【stdarg.h】 - 可変個数の実引数【stdatomic.h】 - アトミック操作【stdbool.h】 - 論理型および論理値【stddef.h】 - 共通の定義【stdint.h】 - 整数型【stdio.h】 - 入出力【stdlib.h】 - 一般ユーティリティ【stdnoreturn.h】 - _Noreturn【string.h】 - 文字列操作【tgmath.h】 - 型総称数学関数(Type-generic math)【threads.h】 - マルチスレッド【time.h】 - 日付及び時間【uchar.h】 - Unicodeユーティリティ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





【C言語】型 / Type

【C言語】
型 / Type




LPCTSTRLPCTSTR = const TCHAR*
LPTSTRLPTSTR = TCHAR*
LPSTRLPSTR = char*
LPCSTRLPCSTR = const char*
LPWSTRLPWSTR = WCHAR*
LPCWSTR LPCWSTR = const WCHAR*

となっている。つまり

  • LP = *(ポインタ)
  • C = const
  • TSTR = TCHAR
  • STR = char
  • WSTR = WCHAR
というような規則で型の名前が作られている。



代表的な型

void 「空」を意味する。
関数の戻り値として使用すると、戻り値がないという意味になる。
関数の引数に使用すると、引数がないという意味になる。
char ( signed char )1バイトの符号付き整数
unsigned char1バイトの符号なし整数
short ( signed short )2バイトの符号付き整数
unsigned short2バイトの符号なし整数
int ( signed int )4バイトの符号付き整数
unsigned int4バイトの符号なし整数
long ( signed long )4バイトの符号付き整数
unsigned long4バイトの符号なし整数
long long ( signed long long )8バイトの符号付き整数
unsigned long long8バイトの符号なし整数
float単精度の浮動小数点数
double倍精度の浮動小数点数
long double拡張倍精度の浮動小数点数
_Bool論理値
float _Complex「float」型を使った複素数
double _Complex「double」型を使った複素数
long double _Complex「long double」型を使った複素数



C99で導入された整数型

int8_t8ビット(1バイト)幅の符号付整数
uint8_t8ビット(1バイト)幅の符号なし整数
int16_t16ビット(2バイト)幅の符号付整数
uint16_t16ビット(2バイト)幅の符号なし整数
int32_t32ビット(4バイト)幅の符号付整数
uint32_t32ビット(4バイト)幅の符号なし整数
int64_t64ビット(8バイト)幅の符号付整数
uint64_t64ビット(8バイト)幅の符号なし整数
int_least8_t最低8ビット(1バイト)幅を持つ符号付き整数
uinit_least8_t最低8ビット(1バイト)幅を持つ符号なし整数
int_least16_t最低16ビット(2バイト)幅を持つ符号付き整数
uint_least16_t最低16ビット(2バイト)幅を持つ符号なし整数
int_least32_t最低32ビット(4バイト)幅を持つ符号付き整数
uint_least32_t最低32ビット(4バイト)幅を持つ符号なし整数
int_least64_t最低64ビット(8バイト)幅を持つ符号付き整数
uint_least64_t最低64ビット(8バイト)幅を持つ符号なし整数
int_fast8_t最低8ビット(1バイト)幅を持つ最も効率的な符号付き整数
uint_fast8_t最低8ビット(1バイト)幅を持つ最も効率的な符号なし整数
int_fast16_t最低16ビット(2バイト)幅を持つ最も効率的な符号付き整数
uint_fast16_t最低16ビット(2バイト)幅を持つ最も効率的な符号なし整数
int_fast32_t最低32ビット(4バイト)幅を持つ最も効率的な符号付き整数
uint_fast32_t最低32ビット(4バイト)幅を持つ最も効率的な符号なし整数
int_fast64_t最低64ビット(8バイト)幅を持つ最も効率的な符号付き整数
uint_fast64_t最低64ビット(8バイト)幅を持つ最も効率的な符号なし整数
intmax_t使用可能な最大幅を持つ符号付き整数
uintmax_t使用可能な最大幅を持つ符号なし整数
intptr_tポインタ(アドレス)を格納することができる符号付整数
uintptr_tポインタ(アドレス)を格納することができる符号なし整数



暗黙の型変換
コンパイラが自動的に無難な型変換を行うものです。



代入時の変換

左辺の型と右辺の型が異なっている場合は、左辺の型に変換。



式の中で行われる変換

式中で異なる型の定数や変数が現れたときは、精度の高い型に統一。 精度は今まで学習したものでは、下図のように char型 が一番低く、double型が一番高くなります。 char < int < long < float < double



明示的型変換(キャスト)

強制的に別の型に変換したいときに用いる。



書式

変数=(変換したい型名)変数or式など 例: f = (float)a/b;