ChishiroのC言語

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

Windows,MacOS,Linux/UNIX,FreeBSD等のOS開発に利用されるプログラミング言語「C言語」に関する記事を紹介します.

C言語を習得してコンピュータの本質を理解したいあなたにおすすめです.

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!

友だち追加

目次

事前に必要な基礎知識

本ブログの記事は主にC言語の中級者~上級者向けに書かれています.

具体的には,以下の方を対象としています.

  • C言語を利用して研究開発している情報系の学部4年生~大学院生(修士・博士)
  • ロボット,自動車,IoTを対象としたC言語エンジニア(組込み・IoTエンジニア)
  • OSの中身を学びたい方
  • コンピュータの本質を理解したい方

事前に必要な基礎知識として,以下のコンピュータの基本を習得しているとします.

  • ハードウェア
  • OS
  • C言語(初心者)

これらのコンピュータの基本が身についていない場合は,まずは以下の本を理解した上で学ぶことをおすすめします.どれも名著です.

もちろん,これらの本を読みながらC言語を学んでもOKです.

ハードウェア

ハードウェアのおすすめの本は「コンピュータの構成と設計 第5版」です.

コンピュータの構成と設計 第5版は,コンピュータアーキテクチャ(ハードウェア)の基礎を学ぶための良書です.

本の著者はデイビッド・パターソンとジョン・ヘネシーで,苗字の最初の2文字をそれぞれ取って「パタヘネ」と呼ばれています.

パタヘネはコンピュータアーキテクチャを学ぶための必読書です.



コンピュータの構成と設計 第5版を理解して余裕があるあなたは,「コンピュータアーキテクチャ[第6版]定量的アプローチ」をおすすめします.

コンピュータアーキテクチャ[第6版]定量的アプローチの著者は,順番は違いますが,同じくジョン・ヘネシーとデイビッド・パターソンで,苗字の最初の2文字をそれぞれ取って「ヘネパタ」と呼ばれています.

ヘネパタはパタヘネよりは高度な内容ですが,挑戦したいあなたにおすすめです.


OS

「オペレーティングシステム 第3版」は,OSの本質が学べる本です.

オペレーティングシステム 第3版の著者は,アンドリュー・タネンバウムです.

アンドリュー・タネンバウムは,MINIXという教育用のOSを開発したことで有名です.

オペレーティングシステム 第3版で,OSの本質を学べます.


「30日でできる! OS自作入門」は,C言語を学んでOSを自作する楽しさを知りたいあなたにおすすめです.


C言語(初心者)

C言語の初心者向けの内容を独学したいあなたに,以下のブログをおすすめします.

どちらも人気ブログなので,書籍化されています.



以下の本は,C言語を開発したブライアン・カーニハンとデニス・リッチー(K&R)が書いた「プログラミング言語C 第2版」です.

プログラミング言語C 第2版は1988年発売と結構古いですが,一度読んでおくことをおすすめします.

上記で紹介したブログや参考書と比較すると,少し難しめです.


「ちょっとC言語の独学は難しいな...」と思うあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社を読みましょう.

C言語 プログラミングスクール
元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社

こういった悩みにお答えします. 本記事の内容:おすすめのC言語を学べるオンラインプログラミングスクール5社 SAMURAI ENGINEER(侍エンジニア) Tech Teacher KENスクール ...

続きを見る

C言語の開発環境

本ブログにおけるC言語の開発環境は,特に断りがない限り以下になります.

  • Intel 64ビットCPU(マルチコア)
  • Linux 5.15.0(Ubuntu 22.04 LTS)
  • GCC 11.2.0

また,GCC 11.2.0の比較用のコンパイラとしてClang 14.0.0,他の開発環境としてWindows 11上でVisual Studio 2022を利用することがあります.

Ubuntuを使っているあなたは,apt-getコマンドで以下のソフトウェアをインストールしましょう.

基本的にはC言語で開発できれば良いですが,コードの比較用に一部C++/Python言語で開発する場合があります.

C言語のコードのライセンス

本ブログでオープンソースとして公開する私が作成したC言語のコードのライセンスは,2条項 BSDライセンスになります.

また,引用するコードは,そのライセンスに従います.

例えば,Linuxカーネルのコードのライセンスは,GPL Version 2になります.

私が書いたコードで,あなたのコーディング時間を減らすことができます.

つまり,あなたの研究開発や仕事の効率を上げることができますので,是非利用して下さい!

C言語の概要

C言語とは
C言語とは【元東大教員から学べます】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語2 C言語ができること3 C言語の人気4 Hello World5 まとめ C言語 C言語は,1972年にアメリカのAT&am ...

続きを見る

C言語 C++言語 C#言語
元東大教員が語るC言語,C++言語とC#言語の違い

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語,C++言語とC#言語の違い2 C言語3 C++言語4 C#言語5 まとめ C言語,C++言語とC#言語の違い C言語,C++ ...

続きを見る

C言語 学ぶメリット
元東大教員が語るC言語を学ぶ3つのメリット

こういった悩みにお答えします. 本記事の内容:C言語を学ぶ3つのメリット 代表的なOSがわかる OS系のインターンや就職がアプリケーション系より簡単に内定ゲットできる コンピュータの本質がわかる こう ...

続きを見る

C言語 勉強法
元東大教員が語るC言語の初心者と中級者~上級者のおすすめの勉強法

こういった悩みにお答えします. こういった私から学べます. 目次1 元東大教員が語るC言語の初心者と中級者~上級者のおすすめの勉強法2 C言語の初心者2.1 【無料と有料】ブログや本で独学2.2 【無 ...

続きを見る

C言語 挫折 難しい
元東大教員が語るC言語が挫折するほど難しい5つの理由とできるようになる3つの方法

こういった悩みにお答えします. こういった私から学べます. 目次1 元東大教員が語るC言語が挫折するほど難しい5つの理由1.1 開発環境の構築が大変1.2 文法が古くてわかりにくい1.3 標準ライブラ ...

続きを見る

C言語のWebサイト

C言語 プログラミング サイト
【無料】C言語のプログラムを実行できるおすすめWebサイト3選

こういった悩みにお答えします. こういった私が解説していきます. C言語を学ぶために開発環境を構築するのは面倒ですよね. そんなあなたにC言語のプログラムを実行できるおすすめWebサイト3選を紹介しま ...

続きを見る

C言語 演習問題サイト
【無料】C言語の演習問題を解けるおすすめWebサイト3選

こういった悩みにお答えします. こういった私が解説していきます. 目次1 本記事の対象読者2 C言語の演習問題を解けるおすすめWebサイト3 ハッカーランク(HackerRank)3.1 Skills ...

続きを見る

C言語の基礎(深掘り)

データ型,複素数型,typedef,オーバーフロー,非数と無限大,_Atomic

C言語 データ型
【C言語】データ型とは【変数定義,変数名のルールと命名規則,定数,配列,文字配列,型修飾子】

こういった悩みにお答えします. こういった私から学べます. 目次1 データ型1.1 char型(文字型)1.2 int型(整数型)1.3 float/double型(浮動小数点型)1.4 _Bool型 ...

続きを見る

C言語 複素数
【C言語】複素数型の四則計算(足し算,引き算,掛け算,割り算)と標準ライブラリ関数の使い方

こういった悩みにお答えします. こういった私から学べます. C言語のC99規格で複素数型が採用されたことはご存知ですか? しかし,あまり広く使われていないので,使い方がわからないですよね. そんなあな ...

続きを見る

C言語 typedef
【C言語】typedefとは

こういった悩みにお答えします. こういった私から学べます. 目次1 typedef2 typedefで定義されている標準ライブラリのデータ型2.1 stdio.h2.2 stddef.h2.3 std ...

続きを見る

C言語 算術オーバーフロー
【C言語】算術オーバーフローと回避方法

こういった悩みにお答えします. こういった私から学べます. 目次1 算術オーバーフロー2 整数オーバーフロー3 C言語で符号ありデータ型を使う理由4 符号エラー5 切り捨てエラー6 不完全な範囲チェッ ...

続きを見る

C言語 非数と無限大
【C言語】非数(nan:Not a Number)と無限大(inf:∞)とは【isnan/isinf関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 非数(nan:Not a Number)と無限大(inf:∞)2 C言語で非数になるコード2.1 isnan関数の使い方2.2 is ...

続きを見る

C言語 _Atomic
【C言語】アトミック型修飾子「_Atomic」の使い方

こういった悩みにお答えします. こういった私から学べます. 本記事はC11規格のスレッドを理解していることを前提とします. 目次1 アトミック型修飾子「_Atomic」1.1 memory_order ...

続きを見る

演算子

C言語 演算子
【C言語】演算子とは

こういった悩みにお答えします. こういった私から学べます. 目次1 演算子2 算術演算子3 等値演算子と関係演算子3.1 整数を等値演算子と関係演算子で比較するコード3.2 浮動小数点数を等値演算子と ...

続きを見る

C言語 剰余
【C言語】剰余演算子(%)の符号の注意点

こういった悩みにお答えします. こういった私から学べます. 目次1 剰余演算子(%)2 剰余演算子(%)の符号の注意点:is_odd関数で解説3 剰余演算子の間違った使い方4 剰余演算子の正しい使い方 ...

続きを見る

C言語 ビット演算子 シフト演算子
【C言語】ビット演算子とシフト演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 ビット演算子2 &:ビット毎のAND(論理積)3 |:ビット毎のOR(論理和)4 ^:ビット毎のXOR(排他的論理和)5 ~ ...

続きを見る

C言語 ビット/シフト 応用
【C言語】ビット演算とシフト演算の応用:回転,セット/クリア,スキャン,カウント【x86/ARM命令のコード】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でビット演算とシフト演算の応用2 ビットの回転3 ビットのセット/クリア4 ビットのスキャン4.1 ビットをスキャンする関数4 ...

続きを見る

C言語 キャスト
【C言語】キャスト演算子による明示的な型変換【暗黙的な型変換も紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 キャスト演算子【明示的な型変換】1.1 キャスト演算子でオーバーフローの回避1.2 キャスト演算子で汎用ポインタ型(void *)か ...

続きを見る

C言語 sizeof演算子
【C言語】sizeof演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 sizeof演算子2 sizeof演算子でデータ型のサイズの計算3 sizeof演算子で変数のサイズの計算4 sizeof演算子でポ ...

続きを見る

C言語 _Alignas _Alignof
【C言語】アラインメントの_Alignas指定子と_Alignof演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】アラインメントの_Alignas指定子と_Alignof演算子2 _Alignas指定子と_Alignof演算子の使い方3 ...

続きを見る

C言語 &
【C言語】&を利用する3つの演算子【アドレス,論理積,ビット毎の論理積】

こういった悩みにお答えします. こういった私から学べます. 目次1 &a,*b:アドレス演算子(&)と間接演算子(*)2 a && b:論理積演算子(&&amp ...

続きを見る

C言語 演算子の優先順位 結合規則
【C言語】演算子の優先順位と結合規則

こういった悩みにお答えします. こういった私から学べます. 目次1 演算子の優先順位と結合規則2 演算子に関する記事3 まとめ 演算子の優先順位と結合規則 数学の式に優先順位があるのと同様に,C言語の ...

続きを見る

制御文

C言語 制御文
【C言語】制御文とは【if/else/while/do-while/for/switch/break/continue】

こういった悩みにお答えします. こういった私から学べます. 目次1 制御文2 if文2.1 if文の書式2.2 if文を利用するコード3 複文3.1 複数の書式3.2 if文で複数の文の制御4 if- ...

続きを見る

C言語 ピラミッド
【C言語】for文で6種類の数字のピラミッドの表示

こういった悩みにお答えします. こういった私から学べます. C言語を学んでいると,よくfor文でピラミッドを表示する問題が出ますよね. うまくコードが書けなくて悩んでいるあなたに数字のピラミッドを表示 ...

続きを見る

C言語 カレンダー
【C言語】for文でうるう年を考慮したカレンダーの表示

こういった悩みにお答えします. こういった私から学べます. 目次1 うるう年2 for文でうるう年を考慮したカレンダー3 まとめ うるう年 うるう年とは,2月が28日ではなく29日と1日増える年のこと ...

続きを見る

C言語 goto文
【C言語】goto文が有用な3つの例外

こういった悩みにお答えします. こういった私から学べます. 目次1 goto文2 C言語でgoto文が有用な3つの例外2.1 資源の獲得・解放を1:1対応にする場合2.2 多重構文から脱出する場合2. ...

続きを見る

関数,ポインタ

C言語 関数
【C言語】関数とは【プロトタイプ宣言,引数,記憶クラス指定子とスコープ,関数内外の変数の初期化】

こういった悩みにお答えします. こういった私から学べます. 目次1 関数2 関数のコード例3 関数のプロトタイプ宣言4 関数の引数5 記憶クラス指定子とスコープ5.1 変数定義5.2 変数の分類5.3 ...

続きを見る

C言語 再帰
【C言語】関数の再帰呼び出し【階乗,順列,組み合わせ,フィボナッチ数列,アッカーマン関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 関数の再帰呼び出し2 関数の再帰呼び出しで階乗の計算3 関数の再帰呼び出しで順列の計算4 関数の再帰呼び出しで組み合わせの計算5 関 ...

続きを見る

C言語 ポインタ
【C言語】ポインタとは

こういった悩みにお答えします. こういった私から学べます. 目次1 ポインタ2 ポインタ変数2.1 ポインタ演算子の使い方2.2 ポインタ変数を利用するコード3 ポインタと関数の引数:値渡しと参照渡し ...

続きを見る

C言語 _Noreturn
【C言語】_Noreturn関数指示子の使い方と実例

こういった悩みにお答えします. こういった私から学べます. 目次1 _Noreturn2 _Noreturnの使い方3 _NoreturnのLinuxカーネルにおける実例4 まとめ _Noreturn ...

続きを見る

C言語 inline
【C言語】inline関数指示子の使い方と実例

こういった悩みにお答えします. こういった私から学べます. 目次1 inline関数指示子2 inlineの使い方3 inlineのLinuxカーネルにおける実例4 まとめ inline関数指示子 i ...

続きを見る

構造体,共用体,列挙型

C言語 構造体
【C言語】構造体とは【定義,変数,アクセス,引数,返り値,ポインタ,ビットフィールド】

こういった悩みにお答えします. こういった私から学べます. 目次1 構造体2 構造体の定義3 構造体の変数4 構造体のアクセス4.1 構造体メンバへのアクセス 4.2 構造体変数の初期化4.3 構造体 ...

続きを見る

C言語 共用体
【C言語】共用体unionの使い方と実例

こういった悩みにお答えします. こういった私から学べます. 目次1 共用体union2 共用体unionの使い方3 共用体unionのLinuxカーネルにおける実例4 まとめ 共用体union 共用体 ...

続きを見る

C言語 列挙型
【C言語】列挙型enumの使い方と実例

こういった悩みにお答えします. こういった私から学べます. 目次1 列挙型enum2 列挙型enumの使い方3 列挙型enumのポインタ型の使い方4 列挙型enumのLinuxカーネルにおける実例5 ...

続きを見る

プリプロセッサ(マクロ),総称選択_Generic

C言語 マクロ
【C言語】プリプロセッサ(マクロ)とは

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のプリプロセッサ(マクロ)とは2 #include:ファイルの取り込み3 #define:マクロ置換3.1 記号定数マクロ3. ...

続きを見る

C言語 _Generic
【C言語】総称選択_Genericの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 総称選択_Generic2 _Genericの構文と制約3 引数が1つの場合の_Genericの使い方4 引数が2つの場合の_Gen ...

続きを見る

可変長引数

C言語 可変長引数
【C言語】可変長引数"..."とは

こういった悩みにお答えします. こういった私から学べます. 目次1 可変長引数2 可変長引数の関数2.1 "..."とは:printf/scanf関数のプロトタイプ宣言で解説2.2 可変長引数のプロト ...

続きを見る

C言語 scanf関数 問題の回避方法
【C言語】scanf関数の改行文字('\n')が残る問題の回避方法

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】scanf関数の改行文字('\n')が残る問題の回避方法2 getchar関数で改行文字('\n')を読み捨てる3 ダミー ...

続きを見る

C言語 printfファミリー関数
【C言語】printfファミリー関数の使い方【printf/fprintf/dprintf/sprintf/snprintf/vprintf/vfprintf/vdprintf/vsprintf/vsnprintf関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】printfファミリー関数2 printfファミリー関数の使い方3 まとめ 【C言語】printfファミリー関数 [cra ...

続きを見る

C言語 scanfファミリー関数
【C言語】scanfファミリー関数の使い方【scanf/fscanf/sscanf/vscanf/vsscanf/vfscanf関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】scanfファミリー関数2 scanfファミリー関数の使い方3 まとめ 【C言語】scanfファミリー関数 [crayon ...

続きを見る

C言語 printf関数 自作
【C言語】printf関数の自作「myprintf関数」

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でprintf関数の自作「myprintf関数」2 printf関数の自作「myprintf関数」の作成ルール3 myprin ...

続きを見る

C言語 scanf関数 自作
【C言語】scanf関数の自作「myscanf関数」

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でscanf関数の自作「myscanf関数」2 scanf関数の自作「myscanf関数」の作成ルール3 myscanf関数の ...

続きを見る

予約語(キーワード)

C言語 予約語
【C言語】予約語(キーワード)【C99/C11の追加分もあります】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語の予約語(キーワード)2 型に関する予約語(キーワード)2.1 整数型2.2 符号の有無2.3 浮動小数点型2.4 複素数型2 ...

続きを見る

ビルド,デバッグツール,アサーション

C言語 Make
【C言語】Makeの使い方

こういった悩みにお答えします. こういった私が解説していきます. C言語はPython,Ruby,HTML/CSS/JS/PHPのようなアプリケーション系の言語と比較して難易度が高いですよね. 私がC ...

続きを見る

C言語 SCons
【C言語】SCons:All-in-Oneのビルドツール

こういった悩みにお答えします. こういった私から学べます. 目次1 SCons2 SConsの使い方3 まとめ SCons SConsは,ソフトウェアプロジェクトの記述からソースコードファイルの依存性 ...

続きを見る

C言語 GDB
【C言語】GDBでプログラムを効率的にデバッグ

こういった悩みにお答えします. こういった私が解説していきます. 目次1 GNU Debugger(GDB)2 GDBの簡単な利用例2.1 GDBなしで実行2.2 GDBありで実行3 GDBによるステ ...

続きを見る

C言語 rr
【C言語】rr:プログラムの実行を記録,再生できるLinux用デバッグツール

こういった悩みにお答えします. こういった私から学べます. 目次1 rr:プログラムの実行を記録,再生できるLinux用デバッグツール2 rrの使い方3 まとめ rr:プログラムの実行を記録,再生でき ...

続きを見る

C言語 静的コード解析 動的プログラム解析
【C/C++言語】静的コード解析ツールと動的プログラム解析ツール

こういった悩みにお答えします. こういった私から学べます. 目次1 C/C++言語の静的コード解析ツール1.1 Clang Static Analyzer1.2 Cppcheck1.3 FlawFin ...

続きを見る

C言語 コンパイラ最適化
【C言語】コンパイラの最適化と戦うあなたへ

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のコンパイラの最適化による不具合2 C言語からアセンブリ言語への変換箇所を特定する方法3 ループ処理のコード例4 コンパイラの ...

続きを見る

C言語 _Static_assert assert
【C言語】静的アサーション_Static_assertと動的アサーションassertマクロの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 静的アサーション_Static_assertと動的アサーションassertマクロ1.1 静的アサーション_Static_assert ...

続きを見る

C言語 KernelShark
【C言語】Linuxカーネルの関数呼び出しをトレースするKernelSharkの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 KernelShark2 Linuxカーネルの関数呼び出しをトレースするKernelSharkの使い方3 KernelSharkの解 ...

続きを見る

開発ツール

C言語 C4996エラー
【C/C++言語】Visual StudioでC4996エラーを回避する4つの方法

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のC4996エラー2 Visual StudioでC4996エラーを回避する4つの方法2.1 C4996エラーをプロパティのS ...

続きを見る

C言語 AStyle
【C言語】Artistic Style(AStyle)でコードの整形を

こういった悩みにお答えします. こういった私が解説していきます. 目次1 Artistic Style(AStyle)2 私のAStyleの設定ファイル「astylerc」3 AStyleの利用例4 ...

続きを見る

C言語から他の言語 関数呼び出し
C言語からC++/Rust/Python/Go/Java言語の関数呼び出し

こういった悩みにお答えします. こういった私から学べます. C言語だと実装するのに面倒なことがありますよね. そんなあなたにC言語からC++/Rust/Python/Go/Java言語の関数呼び出しを ...

続きを見る

C言語 C++言語 機能を模倣
C言語でC++言語の機能を模倣する方法

こういった私から学べます. C言語でC++言語みたいにコードを書けたら便利だと思ったことはありませんか? そんなあなたにC言語でC++言語の機能を模倣する方法を紹介します. 基本的にはGCC/Clan ...

続きを見る

C言語 インタプリタ
【C/C++言語】おすすめのインタプリタ2選

こういった悩みにお答えします. こういった私から学べます. C/C++言語は基本的にはGCC/Clang/Visual Studio等のコンパイラでコンパイルして実行しますが,インタプリタがあることを ...

続きを見る

C言語の標準ライブラリ

stdio.h

C言語 標準入力stdin
【C言語】標準入力stdinから値を読み込む方法

こういった悩みにお答えします. こういった私から学べます. 目次1 標準入力stdin2 標準入力から文字の読み込み2.1 getchar関数2.2 getc関数2.3 fgetc関数3 標準入力から ...

続きを見る

C言語 ungetc関数
【C言語】ungetc関数の使い方

こういった悩みにお答えします. こういった私から学べます. 本記事では,標準入力stdinから値を読み込む方法を習得しているとします. 目次1 ungetc関数2 ungetc関数の使い方3 まとめ ...

続きを見る

C言語 gets関数
【C言語】gets関数が廃止された理由と代替関数

こういった悩みにお答えします. こういった私から学べます. 目次1 gets関数が廃止された理由2 gets関数の代替関数2.1 fgets関数2.2 getline関数2.3 gets_s関数2.4 ...

続きを見る

C言語 標準出力 標準エラー出力
【C言語】標準出力と標準エラー出力の違い

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語の標準出力と標準エラー出力の違い1.1 3つの標準ファイルストリーム1.2 標準出力と標準エラー出力のコード2 ファイルストリ ...

続きを見る

C言語 sprintf関数
【C言語】sprintf/snprintf/sprintf_s関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 sprintf関数2 snprintf関数3 sprintf_s関数4 まとめ sprintf関数 [crayon-62b7ef74 ...

続きを見る

C言語 fopen関数
【C言語】fopen/open/fopen_s関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 fopen関数1.1 fopen関数でファイルの読み込み1.2 fopen関数でファイルの書き込み2 open関数2.1 open関 ...

続きを見る

C言語 printfファミリー関数
【C言語】printfファミリー関数の使い方【printf/fprintf/dprintf/sprintf/snprintf/vprintf/vfprintf/vdprintf/vsprintf/vsnprintf関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】printfファミリー関数2 printfファミリー関数の使い方3 まとめ 【C言語】printfファミリー関数 [cra ...

続きを見る

C言語 scanfファミリー関数
【C言語】scanfファミリー関数の使い方【scanf/fscanf/sscanf/vscanf/vsscanf/vfscanf関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】scanfファミリー関数2 scanfファミリー関数の使い方3 まとめ 【C言語】scanfファミリー関数 [crayon ...

続きを見る

C言語 scanf関数 問題の回避方法
【C言語】scanf関数の改行文字('\n')が残る問題の回避方法

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】scanf関数の改行文字('\n')が残る問題の回避方法2 getchar関数で改行文字('\n')を読み捨てる3 ダミー ...

続きを見る

C言語 一時ファイル 一時ディレクトリ
【C言語】一時ファイルを作成するtmpfile関数とmkstemp関数,一時ディレクトリを作成するmkdtemp関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 一時ファイルを作成するtmpfile関数とmkstemp関数1.1 tmpfile関数1.2 mkstemp関数2 一時ディレクトリ ...

続きを見る

stdlib.h

C言語 絶対値
【C言語】絶対値を標準ライブラリ関数と自作関数・マクロで計算

こういった悩みにお答えします. こういった私から学べます. 目次1 絶対値2 絶対値をC言語の標準ライブラリ関数で計算2.1 整数と浮動小数点数の絶対値を計算2.2 複素数の絶対値を計算3 絶対値をC ...

続きを見る

C言語 atoi/atof関数
【C言語】atoi/atof/strtol/strtod関数と自作関数で文字列を数値に変換【数値を文字列に変換する自作関数も紹介】

こういった悩みにお答えします. こういった私から学べます. C言語で文字列を数値に変換する方法と数値を文字列に変換する方法を紹介します. 本記事を読むと文字列と数値の相互変換をきちんと理解できます. ...

続きを見る

C言語 乱数生成
【C言語】rand関数と自作関数で乱数の生成【モンテカルロ法で円周率の計算】

こういった悩みにお答えします. こういった私から学べます. 目次1 乱数2 一様乱数と一様分布3 rand関数による乱数の生成3.1 rand関数による乱数の生成コード3.2 rand/srand関数 ...

続きを見る

C言語 動的メモリ確保
【C言語】malloc/calloc/realloc/alloca関数と可変長配列で動的にメモリ確保

こういった悩みにお答えします. こういった私から学べます. C言語のmalloc/calloc/realloc/alloca関数と可変長配列で動的にメモリ確保する方法を紹介します. 目次1 mallo ...

続きを見る

C言語 線形探索 二分探索
【C言語】線形探索と二分探索で数値と文字列の検索【lfind/lsearch/bsearch関数と自作関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 線形探索と二分探索2 線形探索と二分探索の標準ライブラリ関数2.1 lfind/lsearch関数2.2 bsearch関数3 線形 ...

続きを見る

C言語 qsort関数
【C言語】qsort/qsort_r関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 qsort関数1.1 qsort関数の使い方1.2 qsort関数の問題点2 qsort_r関数3 まとめ qsort関数 [cra ...

続きを見る

C言語 一時ファイル 一時ディレクトリ
【C言語】一時ファイルを作成するtmpfile関数とmkstemp関数,一時ディレクトリを作成するmkdtemp関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 一時ファイルを作成するtmpfile関数とmkstemp関数1.1 tmpfile関数1.2 mkstemp関数2 一時ディレクトリ ...

続きを見る

C言語 div関数
【C言語】整数の除算と剰余演算をするdiv関数の存在意義と使い方

こういった悩みにお答えします. こういった私から学べます. C言語で整数で除算と剰余演算をするdiv関数があることはご存知ですか? C言語では,除算演算子(/)と剰余演算子(%)を利用すれば整数で除算 ...

続きを見る

string.h

C言語 文字列の比較
【C言語】strcmp/strncmp関数と自作関数で文字列の比較

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で文字列の比較2 strcmp/strncmp関数2.1 strcmp/strncmp関数の利用例2.2 strcmp/str ...

続きを見る

C言語 strlen関数
【C言語】strlen関数と自作関数で文字列の長さの計算

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で文字列の長さの計算2 strlen関数2.1 strlen関数の利用例2.2 strlen関数とsizeof演算子の違い2. ...

続きを見る

C言語 strcpy関数
【C言語】strcpy/strncpy/strcpy_s関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strcpy関数1.1 strcpy関数の使い方1.2 strcpy関数の自作関数1.3 strcpy関数の注意点2 strncpy ...

続きを見る

C言語 strcat関数
【C言語】strcat/strncat/strcat_s関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strcat関数1.1 strcat関数の使い方1.2 strcat関数の自作関数1.3 strcat関数の注意点2 strncat ...

続きを見る

C言語 strdup関数
【C言語】strdup/strndup関数で文字列の複製と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strdup/strndup関数で文字列の複製1.1 strdup/strndup関数の利用例1.2 strdup/strndup関 ...

続きを見る

C言語 strtok関数
【C言語】strtok/strtok_r/strsep関数の注意点と使い方【自作関数も紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 strtok/strtok_r/strsep関数1.1 strtok関数1.2 strtok_r関数1.3 strsep関数1.4 ...

続きを見る

C言語 文字列の検索
【C言語】文字列をstrstr関数で検索【ナイーブ法,KMP法,BM法】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で文字列の検索2 strchr/strrchr関数で文字の検索2.1 strchr/strrchr関数の使い方2.2 strc ...

続きを見る

C言語 memcpy関数 memmove関数
【C言語】memcpy関数とmemmove関数の違いと自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 memcpy関数とmemmove関数の違い2 memcpy関数とmemmove関数の利用例3 memcpy関数とmemmove関数の ...

続きを見る

C言語 memccpy関数
【C言語】メモリ領域をコピーするmemccpy関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 本記事は,memcpy関数とmemmove関数の違いと自作関数を理解していることを前提とします. ※本記事で紹介するmemccpy関数は,m ...

続きを見る

C言語 strspn/strcspn関数
【C言語】strspn/strcspn関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strspn/strcspn関数2 strspn/strcspn関数の使い方2.1 strspn関数の使い方2.2 strcspn関 ...

続きを見る

C言語 strpbrk関数
【C言語】strpbrk関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strpbrk関数2 strpbrk関数の使い方3 strpbrk関数の自作関数4 まとめ strpbrk関数 [crayon-62 ...

続きを見る

C言語 strfry関数
【C言語】文字列中の文字をランダムに並び替えるstrfry関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 strfry関数2 strfry関数の使い方3 strfry関数の自作関数4 まとめ strfry関数 [crayon-62b7ef ...

続きを見る

C言語 memfrob関数
【C言語】 メモリエリアを暗号化(操作)するmemfrob関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 memfrob関数2 memfrob関数の使い方3 memfrob関数の自作関数4 まとめ memfrob関数 [crayon-62 ...

続きを見る

stdalign.h

C言語 _Alignas _Alignof
【C言語】アラインメントの_Alignas指定子と_Alignof演算子の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】アラインメントの_Alignas指定子と_Alignof演算子2 _Alignas指定子と_Alignof演算子の使い方3 ...

続きを見る

stdnoreturn.h

C言語 _Noreturn
【C言語】_Noreturn関数指示子の使い方と実例

こういった悩みにお答えします. こういった私から学べます. 目次1 _Noreturn2 _Noreturnの使い方3 _NoreturnのLinuxカーネルにおける実例4 まとめ _Noreturn ...

続きを見る

ctype.h

C言語 ctype.h
【C言語】ctype.hの関数で文字を分類

こういった悩みにお答えします. こういった私から学べます. 目次1 ctype.hの関数2 ctype.hの関数の使い方3 ctype.hの関数の自作関数4 まとめ ctype.hの関数 標準ライブラ ...

続きを見る

limits.h,float.h

【C言語】処理系依存 最小値と最大値
【C言語】処理系依存の整数と浮動小数点数の最小値と最大値の取得

こういった悩みにお答えします. こういった私から学べます. 目次1 処理系依存の整数と浮動小数点数の最小値と最大値の取得2 処理系依存の整数の最小値と最大値の取得3 処理系依存の浮動小数点数の最小値と ...

続きを見る

math.h

C言語 sin/cos/tan関数
【C言語】三角関数のsin/cos/tan関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 三角関数のsin/cos/tan関数1.1 sin/sinf/sinl関数の使い方1.2 cos/cosf/cosl関数の使い方1. ...

続きを見る

C言語 asin/acos/atan/atan2関数
【C言語】逆三角関数のasin/acos/atan/atan2関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 逆三角関数のasin/acos/atan/atan2関数1.1 asin関数1.2 acos関数1.3 atan/atan2関数2 ...

続きを見る

C言語 sinh/cosh/tanh関数
【C言語】双曲線関数のsinh/cosh/tanh関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 双曲線関数のsinh/cosh/tanh関数1.1 sinh/sinhf/sinhl関数1.2 cosh/coshf/coshl関数 ...

続きを見る

C言語 asinh/acosh/atanh関数
【C言語】逆双曲線関数のasinh/acosh/atanh関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 逆双曲線関数のasinh/acosh/atanh関数1.1 asinh/asinhf/asinhl関数1.2 acosh/acosh ...

続きを見る

C言語 exp関数
【C言語】exp/exp2/exp10/expm1関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 exp/exp2/exp10/expm1関数2 exp/exp2/exp10/expm1関数の使い方3 exp/exp2/exp10 ...

続きを見る

C言語 log関数
【C言語】log/log2/log10/log1p関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 log/log2/log10/log1p関数2 log/log2/log10/log1p関数の使い方3 log/log2/log10 ...

続きを見る

C言語 べき乗
【C言語】pow関数と自作関数でべき乗,累乗,2乗の計算

こういった悩みにお答えします. こういった私から学べます. 目次1 べき乗,累乗,2乗とは1.1 2乗の自作コード1.2 累乗の自作コード1.3 べき乗の自作コード2 pow関数でべき乗の計算3 自作 ...

続きを見る

C言語 sqrt/sqrtf/sqrtl関数
【C言語】平方根を計算するsqrt/sqrtf/sqrtl関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 平方根を計算するsqrt/sqrtf/sqrtl関数2 sqrt/sqrtf/sqrtl関数の使い方3 sqrt/sqrtf/sqr ...

続きを見る

C言語 hypot/hypotf/hypotl関数
【C言語】ユークリッド距離を計算するhypot/hypotf/hypotl関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 本記事は,以下の記事を理解していることを前提とします. 目次1 ユークリッド距離を計算するhypot/hypotf/hypotl関数2 hy ...

続きを見る

C言語 四捨五入
【C言語】四捨五入,切り捨て,切り上げする標準ライブラリ関数と自作関数【round/floor/ceil関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 四捨五入,切り捨て,切り上げ2 C言語で四捨五入,切り捨て,切り上げする標準ライブラリ関数2.1 round/roundf/roun ...

続きを見る

C言語 整数に丸める関数
【C言語】整数に丸めるnearbyint/rint/lrint/llrint/lround/llround/trunc関数の違いと使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で整数に丸めるnearbyint/rint/lrint/llrint/lround/llround/trunc関数2 near ...

続きを見る

C言語 frexp/frexpf/frexpl関数
【C言語】frexp/frexpf/frexpl関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 frexp/frexpf/frexpl関数2 frexp/frexpf/frexpl関数の使い方3 frexp/frexpf/fre ...

続きを見る

C言語 ldexp/ldexpf/ldexpl関数
【C言語】ldexp/ldexpf/ldexpl関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 ldexp/ldexpf/ldexpl関数2 ldexp/ldexpf/ldexpl関数の使い方3 ldexp/ldexpf/lde ...

続きを見る

C言語 modf/modff/modfl関数
【C言語】modf/modff/modfl関数の使い方と自作関数

こういった悩みにお答えします. こういった私から学べます. 目次1 modf/modff/modfl関数2 modf/modff/modfl関数の使い方3 modf/modff/modfl関数の自作関 ...

続きを見る

C言語 fmod関数 remainder関数
【C言語】浮動小数点数の剰余演算ができるfmod/remainder関数の使い方

こういった悩みにお答えします. こういった私から学べます. C言語で剰余演算子(%)を利用すれば整数で剰余演算ができます. しかし,浮動小数点数(実数)では剰余演算子で剰余演算はできません. そこで本 ...

続きを見る

complex.h

C言語 複素数
【C言語】複素数型の四則計算(足し算,引き算,掛け算,割り算)と標準ライブラリ関数の使い方

こういった悩みにお答えします. こういった私から学べます. C言語のC99規格で複素数型が採用されたことはご存知ですか? しかし,あまり広く使われていないので,使い方がわからないですよね. そんなあな ...

続きを見る

time.h

C言語 sleep関数
【C言語】sleep/usleep/nanosleep/clock_nanosleep関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 sleep関数2 usleep関数3 nanosleep関数4 clock_nanosleep関数5 まとめ sleep関数 [cr ...

続きを見る

C言語 time関数
【C言語】time関数で現在時刻の取得

こういった悩みにお答えします. こういった私から学べます. 目次1 time関数2 ctime関数3 asctime/localtime/gmtime関数4 ctime/asctime/localti ...

続きを見る

C言語 clock関数
【C言語】clock関数でプログラムの実行時間の計測

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でプログラムの実行時間の計測2 clock関数3 difftime関数4 clock_gettime関数5 getrusage ...

続きを見る

C言語 タイマと割り込み
【C言語】タイマと割り込み処理の書き方

こういった悩みにお答えします. こういった私から学べます. 目次1 タイマと割り込み2 sigaction関数3 getitimer/setitimer関数4 timer_create/timer_g ...

続きを見る

regex.h

C言語 正規表現
【C言語】regcomp/regexec/regerror/regfree関数で正規表現の検索【grep/sed/awkコマンドでも紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 正規表現2 C言語のregcomp/regexec/regerror/regfree関数で正規表現の検索3 参考:grep/sed/ ...

続きを見る

dirent.h

C言語 ディレクトリ
【C言語】ディレクトリの操作関数【作成,削除,オープン,読み込み,クローズ】

こういった悩みにお答えします. こういった私から学べます. 目次1 ディレクトリの操作関数2 mkdir関数でディレクトリの作成3 rmdir関数でディレクトリの削除4 opendir/readdir ...

続きを見る

unistd.h

C言語 プロセス
【C言語】プロセスの生成と実行【fork/wait/execve/getpid/getppid関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 プロセス2 fork関数でプロセスの生成,wait関数で子プロセスの終了まで待機3 execve関数でコマンドの実行4 getpid ...

続きを見る

C言語 getopt関数
【C言語】getopt/getopt_long関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 getopt関数2 getopt関数のコード3 getopt_long関数4 getopt_long関数のコード5 まとめ geto ...

続きを見る

C言語 sleep関数
【C言語】sleep/usleep/nanosleep/clock_nanosleep関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 sleep関数2 usleep関数3 nanosleep関数4 clock_nanosleep関数5 まとめ sleep関数 [cr ...

続きを見る

pthread.h

C言語 スレッド
【C言語】スレッドの生成と実行【pthread,マルチスレッド,スレッドIDの取得】

こういった悩みにお答えします. こういった私から学べます. 目次1 スレッド2 pthreadによるマルチスレッドプログラミング3 pthreadでスレッドIDの取得3.1 pthread_self関 ...

続きを見る

C言語 ミューテックス
【C言語】ミューテックスとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 ミューテックス ...

続きを見る

C言語 Read-Write Lock
【C言語】POSIXスレッドのRead-Write Lockの使い方

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッド,プロセス,ミューテックス,セマフォを理解している前提で説明しますので,これらを学びたいあなたはこちらからどうぞ. 目次1 ...

続きを見る

semaphore.h

C言語 セマフォ
【C言語】セマフォとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 セマフォ2 P ...

続きを見る

setjmp.h

C言語 setjmp/longjmp関数
【C言語】setjmp/longjmp関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 setjmp/longjmp関数2 setjmp/longjmp関数,sigsetjmp/siglongjmp関数3 setjmp/ ...

続きを見る

search.h

C言語 線形探索 二分探索
【C言語】線形探索と二分探索で数値と文字列の検索【lfind/lsearch/bsearch関数と自作関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 線形探索と二分探索2 線形探索と二分探索の標準ライブラリ関数2.1 lfind/lsearch関数2.2 bsearch関数3 線形 ...

続きを見る

C言語 二分探索木 操作関数
【C言語】二分探索木の操作関数の使い方【tsearch/tfind/tdelete/twalk/twalk_r/tdestroy関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 二分探索木の操作関数2 二分探索木の操作関数の使い方3 まとめ 二分探索木の操作関数 二分探索木の操作関数を紹介します. [cray ...

続きを見る

C言語 ハッシュテーブル 管理関数
【C言語】ハッシュテーブルの管理関数の使い方【hcreate/hsearch/hdestroy/hcreate_r/hsearch_r/hdestroy_r関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 ハッシュテーブルの管理関数2 ハッシュテーブルの管理関数の使い方2.1 hcreate/hsearch/hdestroy関数の使い方 ...

続きを見る

sched.h

C言語 CPU_SET
【C言語】cpu_set_tデータ構造体とCPU_SETマクロの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 cpu_set_tデータ構造体2 CPU_SETマクロ3 cpu_set_tデータ構造体とCPU_SETマクロの使い方4 まとめ c ...

続きを見る

C言語 sched_*関数 tasksetコマンド
【C言語】sched_setaffinity/sched_getaffinity/sched_getcpu関数の使い方【tasksetコマンドでスレッドを特定のCPUで実行】

こういった悩みにお答えします. こういった私から学べます. 本記事では,以下の記事の内容を理解していることを前提とします. 目次1 sched_setaffinity/sched_getaffinit ...

続きを見る

C言語 Linux RMとEDF
【C言語】LinuxにおけるリアルタイムスケジューリングRMとEDFの実装

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でLinuxにおけるリアルタイムスケジューリングRMとEDFの実装2 sched_attr構造体とsched_setattr/ ...

続きを見る

mqueue.h

C言語 メッセージキュー
【C言語】POSIXのメッセージキューの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】POSIXのメッセージキュー1.1 mq_open関数1.2 mq_send関数1.3 mq_receive関数1.4 m ...

続きを見る

assert.h

C言語 _Static_assert assert
【C言語】静的アサーション_Static_assertと動的アサーションassertマクロの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 静的アサーション_Static_assertと動的アサーションassertマクロ1.1 静的アサーション_Static_assert ...

続きを見る

sys/socket.h

C言語 ソケット通信
【C言語】INETドメイン/UNIXドメインソケット通信によるネットワークプログラミング

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のINETドメイン/UNIXドメインソケット通信によるネットワークプログラミング2 INETドメインソケット通信2.1 INE ...

続きを見る

sys/sysinfo.h

C言語 get_nprocs関数
【C言語】Linuxのプロセッサ数を取得するget_nprocs_conf/get_nprocs関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 get_nprocs_conf/get_nprocs関数2 get_nprocs_conf/get_nprocs関数の使い方3 CP ...

続きを見る

sys/types.h,sys/stat.h

C言語 mkfifo関数
【C言語】名前付きパイプを作成するmkfifo関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で名前付きパイプを作成するmkfifo関数2 mkfifo関数の使い方3 まとめ C言語で名前付きパイプを作成するmkfifo ...

続きを見る

sys/mman.h

C言語 mlock/mlockall/mmap関数
【C言語】メモリをロックするmlock/mlockall関数の使い方【mmap関数も解説】

こういった悩みにお答えします. こういった私から学べます. 目次1 mlock/mlockall関数2 mlock関数の使い方3 mlockall関数の使い方4 参考:mmap関数でファイルやデバイス ...

続きを見る

C言語のアルゴリズム

整数のアルゴリズム

C言語 約数
【C言語】約数の判定【約数の個数と和の計算】

こういった悩みにお答えします. こういった私から学べます. 目次1 約数の判定2 \(\mathcal{O}(n)\)の約数判定アルゴリズム3 \(\mathcal{O}(\sqrt{n})\)の約数 ...

続きを見る

C言語 ユークリッドの互除法
【C言語】ユークリッドの互除法で最大公約数と最小公倍数の計算【オイラーのトーシェント関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 ユークリッドの互除法2 C言語のユークリッドの互除法で最大公約数と最小公倍数の計算3 拡張ユークリッドの互除法4 拡張ユークリッドの ...

続きを見る

C言語 n進数
【C言語】10進数と2進数,8進数,16進数の相互変換

こういった悩みにお答えします. こういった私から学べます. 目次1 10進数と2進数の相互変換2 10進数と8進数の相互変換3 10進数と16進数の相互変換4 まとめ 10進数と2進数の相互変換 10 ...

続きを見る

C言語 素数
【C言語】エラトステネスの篩(ふるい)で素数の判定【サンダラムの篩,アトキンの篩】

こういった悩みにお答えします. こういった私から学べます. 目次1 エラトステネスの篩(ふるい)2 サンダラムの篩3 アトキンの篩4 まとめ エラトステネスの篩(ふるい) エラトステネスの篩(ふるい) ...

続きを見る

C言語 べき乗
【C言語】pow関数と自作関数でべき乗,累乗,2乗の計算

こういった悩みにお答えします. こういった私から学べます. 目次1 べき乗,累乗,2乗とは1.1 2乗の自作コード1.2 累乗の自作コード1.3 べき乗の自作コード2 pow関数でべき乗の計算3 自作 ...

続きを見る

C言語 べき乗と累乗 高速に計算
【C言語】べき乗と累乗を高速に計算【仮想通貨で利用】

こういった悩みにお答えします. こういった私から学べます. 目次1 べき乗と累乗を高速に計算2 繰り返し2乗法(バイナリ法)3 モンゴメリべき乗法4 \(2^k\)-ary法5 スライディングウィンド ...

続きを見る

C言語 パスカルの三角形
【C言語】パスカルの三角形

こういった悩みにお答えします. こういった私から学べます. 目次1 パスカルの三角形2 パスカルの三角形のコード3 パスカルの三角形は11のn乗4 まとめ パスカルの三角形 パスカルの三角形は,二項定 ...

続きを見る

スワップのアルゴリズム

C言語 swap
【C言語】swap関数とswapマクロで値を交換

こういった悩みにお答えします. こういった私から学べます. 目次1 swap2 swap関数2.1 int型のswap関数2.2 double型のswap関数3 swapマクロ3.1 データ型を引数で ...

続きを見る

C言語 バイトスワップ
【C言語】バイトオーダーの交換(バイトスワップ)方法の紹介【x86命令のコード】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でバイトオーダーの交換(バイトスワップ)2 整数のバイトスワップ2.1 bswap_16/bswap_32/bswap_64関 ...

続きを見る

C言語 順列と組み合わせ 全通り表示
【C/C++言語】順列と組み合わせを全通り表示

こういった悩みにお答えします. こういった私から学べます. C/C++言語で順列と組み合わせを全通り表示する方法を紹介します. 順列と組み合わせの個数を計算する方法を知りたいあなたは,関数の再帰呼び出 ...

続きを見る

計算のアルゴリズム

C言語 最小 平均 最大 合計 標準偏差 中央
【C言語】最小値,平均値,最大値,合計値,標準偏差,中央値の計算

こういった悩みにお答えします. こういった私から学べます. 目次1 最小値,平均値,最大値,合計値,標準偏差の計算2 中央値の計算2.1 データをソートした後に中央値の取得2.2 中央値(k番目に大き ...

続きを見る

C言語 行列
【C言語】2次元配列で行列の四則演算(足し算,引き算,掛け算,割り算)【逆行列】

こういった悩みにお答えします. こういった私から学べます. 目次1 行列の四則演算(足し算,引き算,掛け算,割り算)2 行列の足し算と引き算3 行列の掛け算4 行列の割り算(逆行列の掛け算)4.1 2 ...

続きを見る

C言語 ベクトル
【C言語】ベクトルの内積と外積の計算

こういった悩みにお答えします. こういった私から学べます. 目次1 ベクトルの内積と外積2 ベクトルの内積と外積を計算するコード3 まとめ ベクトルの内積と外積 ベクトル\(\vec{a}\)と\(\ ...

続きを見る

C言語 連立一次方程式
【C言語】連立一次方程式の解法【ガウスの消去法(掃き出し法),クラメルの公式(クラメルの法則)】

こういった悩みにお答えします. こういった私から学べます. 本記事は行列を習得していることを前提とします. 目次1 C言語で連立一次方程式の解法2 ガウスの消去法(掃き出し法)3 クラメルの公式(クラ ...

続きを見る

C言語 方程式 解の公式
【C言語】一次方程式,二次方程式,三次方程式,四次方程式の解の公式

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で一次方程式,二次方程式,三次方程式,四次方程式の解の公式2 一次方程式の解の公式3 ニ次方程式の解の公式3.1 ニ次方程式の ...

続きを見る

C言語 多元数
【C/C++言語】多元数とは【一元数,二元数,四元数,八元数】

こういった悩みにお答えします. こういった私から学べます. 目次1 多元数2 一元数:実数3 二元数:複素数4 四元数:複素数を拡張した数体系5 八元数:四元数を拡張した数体系6 まとめ 多元数 多元 ...

続きを見る

文字列処理のアルゴリズム

C言語 文字列の回転
【C言語】文字列の回転

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で文字列の回転2 文字列を回転するstring_left_rotation/string_right_rotation関数3 ...

続きを見る

C言語 CSVファイル
【C言語】CSVファイルの読み書き【C++/Python言語でも紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でCSVファイルの読み書き2 参考:C++/Python言語でCSVファイルの読み書き2.1 C++言語でCSVファイルの読み ...

続きを見る

C言語 Base64
【C言語】Base64のエンコードとデコード【イーサリアムで利用】

こういった悩みにお答えします. こういった私から学べます. 目次1 Base642 Base64のエンコードとデコードのコード3 まとめ Base64 Base64とは,バイナリデータをテキストデータ ...

続きを見る

C言語 JSON
【C/C++言語】おすすめのJSONライブラリ

こういった悩みにお答えします. こういった私から学べます. 目次1 JSON2 C/C++言語でおすすめのJSONライブラリ2.1 C言語:JSON-C2.2 C言語:parson2.3 C言語:cJ ...

続きを見る

探索のアルゴリズム

C言語 線形探索 二分探索
【C言語】線形探索と二分探索で数値と文字列の検索【lfind/lsearch/bsearch関数と自作関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 線形探索と二分探索2 線形探索と二分探索の標準ライブラリ関数2.1 lfind/lsearch関数2.2 bsearch関数3 線形 ...

続きを見る

C言語 二分探索木 操作関数
【C言語】二分探索木の操作関数の使い方【tsearch/tfind/tdelete/twalk/twalk_r/tdestroy関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 二分探索木の操作関数2 二分探索木の操作関数の使い方3 まとめ 二分探索木の操作関数 二分探索木の操作関数を紹介します. [cray ...

続きを見る

C言語 ハッシュテーブル
【C言語】ハッシュテーブルとは【ハッシュチェイン法,オープンアドレス法】

こういった悩みにお答えします. こういった私から学べます. 目次1 ハッシュテーブル(ハッシュ表)2 ハッシュチェイン法(オープンハッシュ法)3 オープンアドレス法(クローズドハッシュ法)4 まとめ ...

続きを見る

C言語 ハッシュテーブル 管理関数
【C言語】ハッシュテーブルの管理関数の使い方【hcreate/hsearch/hdestroy/hcreate_r/hsearch_r/hdestroy_r関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 ハッシュテーブルの管理関数2 ハッシュテーブルの管理関数の使い方2.1 hcreate/hsearch/hdestroy関数の使い方 ...

続きを見る

C言語 文字列の検索
【C言語】文字列をstrstr関数で検索【ナイーブ法,KMP法,BM法】

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で文字列の検索2 strchr/strrchr関数で文字の検索2.1 strchr/strrchr関数の使い方2.2 strc ...

続きを見る

C言語 最短経路問題
【C言語】最短経路問題を解くアルゴリズム【ダイクストラ法,ワーシャル・フロイド法】

こういった悩みにお答えします. こういった私から学べます. 目次1 最短経路問題2 最短経路問題:ダイクストラ法3 全ペア最短経路問題:ワーシャル・フロイド法4 まとめ 最短経路問題 最短経路問題とは ...

続きを見る

ソートのアルゴリズム

C言語 qsort関数
【C言語】qsort/qsort_r関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 qsort関数1.1 qsort関数の使い方1.2 qsort関数の問題点2 qsort_r関数3 まとめ qsort関数 [cra ...

続きを見る

C言語 ソート
【C言語】配列の要素を並び替えるソートアルゴリズム

こういった悩みにお答えします. こういった私から学べます. 目次1 配列の要素を並び替えるソートアルゴリズム2 交換ソートのアルゴリズム2.1 バブルソート2.2 シェーカーソート2.3 奇偶転置ソー ...

続きを見る

C言語 並行ソート
【C言語】マルチコアプロセッサ向け並行ソートアルゴリズム

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語でマルチコアプロセッサ向けソートアルゴリズム2 並行マージソート3 並行クイックソート4 並行分布数えソート5 バイトニックソ ...

続きを見る

C言語のデータ構造

C言語 リスト
【C言語】連結リストとは【片方向リスト,双方向リスト,双方向循環リスト】

こういった悩みにお答えします. こういった私から学べます. 目次1 連結リスト2 C言語のリスト2.1 片方向リスト2.2 双方向リスト2.3 双方向循環リスト3 リストの実例:Linuxカーネル3. ...

続きを見る

C言語 スタック
【C言語】スタックとは【x86のアセンブリ言語で解説】

こういった悩みにお答えします. こういった私から学べます. 目次1 スタック2 C言語のスタック3 x86の命令セットアーキテクチャでスタックを操作するpush/pop命令4 まとめ スタック スタッ ...

続きを見る

C言語 ハッシュテーブル
【C言語】ハッシュテーブルとは【ハッシュチェイン法,オープンアドレス法】

こういった悩みにお答えします. こういった私から学べます. 目次1 ハッシュテーブル(ハッシュ表)2 ハッシュチェイン法(オープンハッシュ法)3 オープンアドレス法(クローズドハッシュ法)4 まとめ ...

続きを見る

C言語 キュー
【C言語】キューとは【優先度キューの二項ヒープを紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 キュー2 C言語のキュー3 C言語の優先度キューの例「二項ヒープ」4 まとめ キュー キューとは,データを先入れ先出し(First ...

続きを見る

C言語 リングバッファ
【C言語】おすすめのリングバッファのライブラリ

こういった悩みにお答えします. こういった私から学べます. 目次1 embedded-resources:おすすめのリングバッファのライブラリ2 embedded-resourcesのC言語のリングバ ...

続きを見る

C言語 動的メモリ確保 ライブラリ
【C/C++言語】おすすめの動的メモリ確保ライブラリ

こういった悩みにお答えします. こういった私から学べます. 本記事は,以下の動的メモリ確保の記事を理解していることを前提とします. 目次1 C/C++言語でおすすめの動的メモリ確保ライブラリ2 【C言 ...

続きを見る

C言語で数値解析

C言語 級数
【C言語】級数とは

こういった悩みにお答えします. こういった私から学べます. 目次1 級数2 自然数の和3 1に収束する分数の和4 バーゼル問題(オイラー級数)5 ネイピア数6 まとめ 級数 級数とは,数や関数など互い ...

続きを見る

C言語 二分法 ニュートン法
【C言語】二分法とニュートン法の違い

こういった悩みにお答えします. こういった私から学べます. 目次1 二分法とニュートン法の違い2 C言語による二分法のコード3 C言語によるニュートン法のコード4 まとめ 二分法とニュートン法の違い ...

続きを見る

C言語 数値微分
【C言語】数値微分とは【前進差分,後退差分,中心差分,常微分方程式,オイラー法,3次テイラー展開,4次ルンゲクッタ法】

こういった悩みにお答えします. こういった私から学べます. 目次1 数値微分2 C言語で数値微分:前進差分,後退差分,中心差分3 常微分方程式4 C言語で常微分方程式:オイラー法,3次テイラー展開,4 ...

続きを見る

C言語 数値積分
【C言語】数値積分とは【区分求積法,リーマン和,リーマン積分,台形公式,シンプソンの公式】

こういった悩みにお答えします. こういった私から学べます. 目次1 数値積分2 区分求積法とリーマン和3 区分求積法の応用:台形公式,シンプソンの公式4 まとめ 数値積分 数値積分とは,数値解析の分野 ...

続きを見る

C言語 gnuplot
【C言語】gnuplotでグラフ作成

こういった悩みにお答えします. こういった私から学べます. 目次1 gnuplot2 C言語からgnuplotでグラフ作成3 gnuplotでsin関数のグラフ作成3.1 gnuplotの標準関数にあ ...

続きを見る

C言語でマルチスレッド,マルチプロセス

C言語 スレッド
【C言語】スレッドの生成と実行【pthread,マルチスレッド,スレッドIDの取得】

こういった悩みにお答えします. こういった私から学べます. 目次1 スレッド2 pthreadによるマルチスレッドプログラミング3 pthreadでスレッドIDの取得3.1 pthread_self関 ...

続きを見る

C言語 プロセス
【C言語】プロセスの生成と実行【fork/wait/execve/getpid/getppid関数】

こういった悩みにお答えします. こういった私から学べます. 目次1 プロセス2 fork関数でプロセスの生成,wait関数で子プロセスの終了まで待機3 execve関数でコマンドの実行4 getpid ...

続きを見る

C言語 ミューテックス
【C言語】ミューテックスとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 ミューテックス ...

続きを見る

C言語 Read-Write Lock
【C言語】POSIXスレッドのRead-Write Lockの使い方

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッド,プロセス,ミューテックス,セマフォを理解している前提で説明しますので,これらを学びたいあなたはこちらからどうぞ. 目次1 ...

続きを見る

C言語 セマフォ
【C言語】セマフォとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 セマフォ2 P ...

続きを見る

C言語 C11スレッド
【C言語】C11規格のスレッド,ミューテックス,スレッド局所記憶「_Thread_local」

こういった悩みにお答えします. こういった私から学べます. 本記事では,C言語のC11規格のスレッド,ミューテックス,スレッド局所記憶「_Thread_local」を紹介します. POSIXスレッドや ...

続きを見る

C言語でネットワークプログラミング

C言語 ソケット通信
【C言語】INETドメイン/UNIXドメインソケット通信によるネットワークプログラミング

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のINETドメイン/UNIXドメインソケット通信によるネットワークプログラミング2 INETドメインソケット通信2.1 INE ...

続きを見る

C言語 QUIC
【C/C++/Python/Go言語】QUIC:グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコル

こういった悩みにお答えします. こういった私から学べます. 目次1 QUIC:グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコル2 QUICのオープンソース2.1 C ...

続きを見る

C言語 cURL
【C言語】cURL(カール)でネットワークプログラミング【libcurlとcurlで比較】

こういった悩みにお答えします. こういった私から学べます. 目次1 cURL(カール)とは2 curl:cURLのコマンドラインツール3 libcurl:cURLのC言語のライブラリ4 libcurl ...

続きを見る

C言語 エラー検出訂正符号ライブラリ
【C/C++言語】おすすめのエラー検出訂正符号ライブラリ

こういった悩みにお答えします. こういった私から学べます. 目次1 【C/C++言語】おすすめのエラー検出訂正符号ライブラリ2 【C++言語】GNU Radio3 【C++言語】AFF3CT4 【C/ ...

続きを見る

C言語でプロセス間通信

C言語 プロセス間通信
【C言語】プロセス間通信とは【共有メモリ,セマフォ,ミューテックス,Read-Write Lock,名前付きパイプ,ソケット通信,メッセージキュー】

こういった悩みにお答えします. こういった私から学べます. 目次1 プロセス間通信2 C言語でセマフォによる共有メモリを利用したプロセス間通信3 C言語でミューテックスによる共有メモリを利用したプロセ ...

続きを見る

C言語 セマフォ
【C言語】セマフォとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 セマフォ2 P ...

続きを見る

C言語 ミューテックス
【C言語】ミューテックスとは

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッドとプロセスを理解している前提で説明します. スレッドとプロセスを学びたいあなたはこちらからどうぞ. 目次1 ミューテックス ...

続きを見る

C言語 Read-Write Lock
【C言語】POSIXスレッドのRead-Write Lockの使い方

こういった悩みにお答えします. こういった私から学べます. 本記事ではスレッド,プロセス,ミューテックス,セマフォを理解している前提で説明しますので,これらを学びたいあなたはこちらからどうぞ. 目次1 ...

続きを見る

C言語 mkfifo関数
【C言語】名前付きパイプを作成するmkfifo関数の使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語で名前付きパイプを作成するmkfifo関数2 mkfifo関数の使い方3 まとめ C言語で名前付きパイプを作成するmkfifo ...

続きを見る

C言語 ソケット通信
【C言語】INETドメイン/UNIXドメインソケット通信によるネットワークプログラミング

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のINETドメイン/UNIXドメインソケット通信によるネットワークプログラミング2 INETドメインソケット通信2.1 INE ...

続きを見る

C言語 メッセージキュー
【C言語】POSIXのメッセージキューの使い方

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】POSIXのメッセージキュー1.1 mq_open関数1.2 mq_send関数1.3 mq_receive関数1.4 m ...

続きを見る

C言語で仮想通貨の技術を解説(べき乗の高速計算,文字列処理,暗号理論,暗号ライブラリ)

C言語 べき乗と累乗 高速に計算
【C言語】べき乗と累乗を高速に計算【仮想通貨で利用】

こういった悩みにお答えします. こういった私から学べます. 目次1 べき乗と累乗を高速に計算2 繰り返し2乗法(バイナリ法)3 モンゴメリべき乗法4 \(2^k\)-ary法5 スライディングウィンド ...

続きを見る

C言語 Base64
【C言語】Base64のエンコードとデコード【イーサリアムで利用】

こういった悩みにお答えします. こういった私から学べます. 目次1 Base642 Base64のエンコードとデコードのコード3 まとめ Base64 Base64とは,バイナリデータをテキストデータ ...

続きを見る

C言語 有限体
【C/C++言語】おすすめの有限体(ガロア体)ライブラリ【仮想通貨で利用】

こういった悩みにお答えします. こういった私から学べます. 目次1 有限体(ガロア体)2 【C/C++言語】おすすめの有限体ライブラリ2.1 C言語:MPFQ2.2 C言語:PARI/GP2.3 C言 ...

続きを見る

C言語 暗号ライブラリ
【C言語】仮想通貨で利用される暗号ライブラリ

こういった悩みにお答えします. こういった私から学べます. C言語で仮想通貨で利用される暗号ライブラリを紹介します. 仮想通貨ビットコイン,イーサリアム,アルゴランド等で利用されています. これらの仮 ...

続きを見る

C言語 準同型暗号
【C/C++/Python言語】おすすめの準同型暗号ライブラリ【ブロックチェーン】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C/C++/Python言語】おすすめの準同型暗号ライブラリ2 準同型暗号とブロックチェーン3 【C++言語】Microsoft ...

続きを見る

C言語でRaspberry Pi(ラズパイ)

C言語 ラズパイ3
【C言語】Raspberry Pi 3のユーザモードとカーネルモードでプログラムの実行

こういった悩みにお答えします. こういった私から学べます. 目次1 Raspberry Pi 32 Raspberry Pi 3のエミュレータ「QEMU」3 Raspberry Pi 3でC言語のプロ ...

続きを見る

C言語でゲーム

C言語 じゃんけん
【C言語】じゃんけんゲーム【相手が1人と2人の場合のコードを解説】

こういった悩みにお答えします. こういった私から学べます. 本記事は,乱数を理解していることを前提とします. 目次1 【C言語】じゃんけんゲーム2 相手が1人の場合のじゃんけんゲーム3 相手が2人の場 ...

続きを見る

C言語 ncurses
【C言語】ncursesの使い方【ゲーム,テトリス,ブロック崩し】

こういった悩みにお答えします. こういった私から学べます. 目次1 【C言語】ncurses2 ncursesでよく利用する関数2.1 initscr/endwin関数2.2 printw関数2.3 ...

続きを見る

C言語のプログラミングスクール,求人サイト,エージェント

C言語 プログラミングスクール
元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社

こういった悩みにお答えします. 本記事の内容:おすすめのC言語を学べるオンラインプログラミングスクール5社 SAMURAI ENGINEER(侍エンジニア) Tech Teacher KENスクール ...

続きを見る

C言語エンジニア 求人サイト
国内・海外のC言語エンジニアの求人サイト【転職】

こういった悩みにお答えします. こういった私が解説していきます. 国内・海外のC言語エンジニアの求人サイトを紹介します. C言語のフリーランスエンジニアになりたいあなたはこちらからどうぞ. C言語エン ...

続きを見る

C言語エンジニア フリーランスエージェント
C言語エンジニアにおすすめのフリーランスエージェント

こういった悩みにお答えします. こういった私が解説していきます. C言語エンジニアの求人サイトを知りたいあなたはこちらからどうぞ. フリーランスエージェントは100社以上あるので全部登録するのは非常に ...

続きを見る

C言語の応用システム

リアルタイムシステム
元東大教員から学ぶリアルタイムシステム

こういった私から学べます. リアルタイムシステムとは,決められた時間(デッドライン)までに処理を完了しなければならない性質をもつシステムのことです. リアルタイムシステムは,ロボット,自動車や航空機な ...

続きを見る

Linuxカーネル
元東大教員から学ぶLinuxカーネル

こういった私から学べます. Linuxカーネルとは,C言語で開発されたオープンソースのOSです. Linuxカーネルは主に以下のコンピュータで広く利用されています. スーパーコンピュータ サーバ An ...

続きを見る