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言語】関数 / Function

【C言語】
関数 / Function




「C言語」での「関数」の使い方をまとめています。


「関数」の書き方や、
アプリを実行した時に、
必ず実行される「main関数」の説明など。

「C言語」でプロジェクト開発するのに、
必須の「関数」の使い方で、
重要なものをメモしています。



詳しくは、
下記をご参照ください。



「関数」とは


プログラミングにおける「関数」は、
数学的な意味の「関数」とは異なり、
プログラミング上で、
特定の処理を行うプログラミングコードを
ひとまとめにし、
「関数名」で呼び出すことで、
いつでも実行可能な状態にしたものを
「関数」と読んでいます。


「C言語」には、

・自身で作成した「関数」
・あらかじめシステムが用意した「ライブラリ関数」

があります。
「ライブラリ関数」の中でも、
どのコンパイラでも使用可能な「ライブラリ関数」を
「標準ライブラリ関数」という。


Back

「関数」の書式


関数の書き方は、
プログラミング言語によって、
その書式は異なります。

「C言語」では、
比較的簡単な書式で使用できるようになっています。



関数の記述方法
返り値の型 関数の名前(引数の型 引数名, 引数の型 引数名, ・・・・・・・){

実行する処理内容

return 返り値;






「ソースファイル」上での関数の記述位置
■ ヘッダフィルを記述する場所
#include "ヘッダフィル名.h"



■ 「変数」「関数」の宣言

関数のプロトタイプ宣言
void main(void);
int OriginalFunc( int );







■ メイン関数を記述する場所
// (プロジェクトを実行すると必ず実行される関数)

void main(void)
{

//オリジナル関数名の呼出
x = OriginalFunc(3);

return 0;
}






■ オリジナル関数の記述場所
// (「main関数」の後に記述する)

int OriginalFunc(int a)
{
int value;

value = a * a;
return value;
}


Back

「メイン関数」とは


「メイン関数(main())」は、
「C言語」で開発したプロジェクトを
ビルド(コンパイル・リンク)して
実行ファイル(アプリ)を作成した後、
実行ファイル(アプリ)を実行したときに、
必ず実行される「関数」です。


「メイン関数」の中に、
プログラミングコードを記述し、
他の関数を呼び出し、
実行したりすることで、
アプリなどが機能するようになっています。


「メイン関数」がない場合は、
アプリを実行しても、
何も機能せず、意味のないアプリとなります。
その前に、「ビルド(コンパイル・リンク)」ができないと
必ずエラーになりますが。。。。


「メイン関数」がないプロジェクトは、
エラーになり、「ビルド(コンパイル・リンク)」すらもできないので、
実行ファイルを書き出すことも不可能です。


Back

「関数ポインタ」とは


「関数」は、
「関数ポインタ」を使用しても、
「関数」を呼び出すことが出来る。


「関数ポインタ」を経由することで、
呼び出す関数を、
別の関数の引数として渡すことも出来る。


書式説明
戻り値の型 (*変数名)(引数);関数ポインタの変数宣言
戻り値の型 (*変数名[要素数])(引数);関数ポインタの配列
関数ポインタ変数名 配列[要素数];関数ポインタ変数を配列に変更する。
関数ポインタ変数名=&関数名;関数ポインタ変数への関数ポインタの代入
関数ポインタ配列[要素数]=&関数名;関数ポインタ配列[要素]への関数ポインタの代入
(*関数ポインタ変数名)(引数、引数);関数の呼び出し。
(*関数ポインタ配列[要素数])(引数、引数);関数の呼び出し。


Back