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
文字列 / String
文字列 / Stringsnprintf - 文字列書式に従って指定文字数分だけ文字配列に書き込む
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子
オペレーション / Operation
ファイル操作 / File Operationコマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリC言語標準ライブラリ【assert.h】 - 診断機能C言語標準ライブラリ【complex.h】 - 複素数計算C言語標準ライブラリ【ctype.h】 - 文字操作C言語標準ライブラリ【errno.h】 - エラーC言語標準ライブラリ【fenv.h】 - 浮動小数点環境C言語標準ライブラリ【float.h】 - 浮動小数点型の特性C言語標準ライブラリ【inttypes.h】 - 整数型の書式の変換C言語標準ライブラリ【iso646.h】 - 代替つづり(Alternate spellings)C言語標準ライブラリ【limits.h】 - 整数型の大きさC言語標準ライブラリ【locale.h】 - 文化圏固有操作C言語標準ライブラリ【math.h】 - 数学C言語標準ライブラリ【setjmp.h】 - 非局所分岐C言語標準ライブラリ【signal.h】 - シグナル操作C言語標準ライブラリ【stdalign.h】 - アライメントC言語標準ライブラリ【stdarg.h】 - 可変個数の実引数C言語標準ライブラリ【stdatomic.h】 - アトミック操作C言語標準ライブラリ【stdbool.h】 - 論理型および論理値C言語標準ライブラリ【stddef.h】 - 共通の定義C言語標準ライブラリ【stdint.h】 - 整数型C言語標準ライブラリ【stdio.h】 - 入出力C言語標準ライブラリ【stdlib.h】 - 一般ユーティリティC言語標準ライブラリ【stdnoreturn.h】 - _NoreturnC言語標準ライブラリ【string.h】 - 文字列操作C言語標準ライブラリ【tgmath.h】 - 型総称数学関数(Type-generic math)C言語標準ライブラリ【threads.h】 - マルチスレッドC言語標準ライブラリ【time.h】 - 日付及び時間C言語標準ライブラリ【uchar.h】 - UnicodeユーティリティC言語標準ライブラリ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティC言語標準ライブラリ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





ヘッダファイル / Header File




「ヘッダファイル名.h」という名前で作成されたファイルに、構造体、プロトタイプ宣言を記述したものを、「ヘッダファイル」という。
通常、ヘッダファイルには関数の中身は書かず、中身はソースファイル (.c) の方に記述する。
ヘッダファイルには、メモリを確保する内容を記述すると、多重エラーなどが発生するため、変数・関数の定義はできない。

実際のソースは、同名.cファイルに記述し、ソースファイルの「.c」 とヘッダファイルの「.h」 の両者を対応させるように作り上げていくのが一般的。
ヘッダファイルと同名のソースファイル「.c」で、ヘッダファイルを呼び込み、関数・変数などの定義をすることで、ヘッダファイルとしての機能が完成する。



インクルードファイルにできること。

マクロの定義例、#define MAX_COUNT (10)
クラスの定義例、class CManiac { int m_iValue; }
変数の宣言(定義ではない)例、extern int g_iCounter;
更に他のヘッダをインクルードすること例、#include <string>


  • staticな関数やグローバル変数の宣言はヘッダファイル内には書かない
  • グローバル変数をextern宣言する
  • ヘッダファイル内では他のヘッダファイルのインクルードを最低限に留める
  • ヘッダの中に、メモリを確保するようなコードを書いてはいけない。
  • メモリを確保するコードは *.cpp の中に書く。
  • 変数を共通化するには、変数の extern 宣言をヘッダの中に書く。



ヘッダファイル保存ディレクトリ

  • /usr/include
  • /usr/ucbinclude



構文

#include <ヘッダファイル名.h> stdio.h のような標準ヘッダをインクルードする。
ヘッダファイルの場所は環境変数INCLUDEで指定したディレクトリ。
コンパイラのデフォルトのインクルードパス及びコンパイルオプションで指定したインクルードパスを起点として挿入するファイルを検索。
#include "ヘッダファイル名.h" 自分で用意したヘッダファイルをインクルードする。
普通ユーザが作ったヘッダファイルを指定するとき使う。
ヘッダファイルの場所は、 ソースファイル(拡張子.c)と同じ場所。
カレントディレクトリのパスを起点として挿入するファイルを検索、ファイルが見つからなかった場合 「#include <挿入するファイルのパス<」 と同様の検索を行う。



C言語 ライブラリ関数一覧


(参考)「void * 関数名()」 とは
「void * 関数名()」 は、返り値のポインタに、どのような型でも指定できる汎用ポインタ型ということを表している。
関数を指定する場所によって、ポインタの型が異なるため、使用するたびにポインタの型を指定しなければならない。
この「void *」で「ポインタ型指定して、返り値のポインタを受け取る。」と宣言する。
使用するときの型指定は、本来の目的の型でキャストしてやるべき。


ヘッダファイル名機能
assert.h 診断機能
complex.h複素数計算 (C99より追加)
ctype.h文字操作
errno.hエラー
fenv.h浮動小数点環境(C99より追加)
float.h浮動小数点型の特性
inttypes.h整数型の書式の変換 (C99より追加)
iso646.h代替つづり(Alternate spellings)(C95より追加)
limits.h整数型の大きさ
locale.h文化圏固有操作
math.h数学
setjmp.h非局所分岐
signal.hシグナル操作
stdarg.h可変個数の実引数
stdbool.h論理型および論理値 (C99より追加)
stddef.h共通の定義
stdint.h整数型 (C99より追加)
stdio.h入出力
stdlib.h一般ユーティリティ
string.h文字列操作
tgmath.h型総称数学関数(Type-generic math) (C99より追加)
time.h日付及び時間
wchar.h多バイトおよびワイド文字拡張ユーティリティ(C95より追加)
wctype.hワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ(C95より追加)
winsock.h Winsockはウィンドウズでソケットを使ってプログラムを書くためのAPI(Application Program Interface) Winsockを使うと、TCP/IPなどインターネットを使って通信を行うプログラムが書けます。
winsock2.h Winsockはウィンドウズでソケットを使ってプログラムを書くためのAPI(Application Program Interface) Winsockを使うと、TCP/IPなどインターネットを使って通信を行うプログラムが書けます。




; ;