最近組み込みエンジニアが気になってきました。かなり勉強大変そうだけど…。
理由はSFに出てくる機械が好きだから。産業ロボにはロマンが詰まっている。
向いてるか向いていないかは置いといて、そっちも少し勉強してみようと思います。
ちなみに最近ハマったSFアニメはネッフリ限定の「サイバーパンクエッジランナーズ」という神鬱アニメです。大好きだけどラスト見返したくない。
今回はC言語について調べたことをメモしていきます。
※(1/27~)ぼちぼちと追記していきます
C言語とは
ハードウェアへの組み込みや開発に強い言語。
手続き型言語と呼ばれており、 コンピューターへの命令(手続き)を実行する順番に記述していくのが基本。
他のプログラミング言語の基礎になっている。
OS開発からアプリケーション、スマホアプリ、組み込み制御機器、車載機器、IoTやAI、ロボットの制御、人工衛星や宇宙ステーションの制御などにも使用されている。
UNIX、Linux、Ruby、PythonはC言語で作られている。
C++、C#との違い
C言語+オブジェクト指向の概念
ゲームエンジン「Unreal Engine」はC++で作られている.
Unreal Engineで作られたゲームはFINAL FANTASY Ⅶ REMAKE等。
C言語+Java+C++
Javaと同じく「ガベージコレクション」を使える
ゲームエンジン「Unity」はC#で作られている。
※ガベージコレクション
プログラムが確保したメモリ領域のうち、不要になった箇所だけを解放してくれる機能
つまり掃除のおば
C言語の文法
#include <stdio.h> int main(void){ printf("hello!\n"); //文字を表示 printf("hello!\n"); /*printf("hello!\n"); */ // [/*]と[*/]で囲むとコメントアウト return 0; }
//出力結果
hello!
hello!
#include <ヘッダファイル名>
▶️ include文
(プログラムを実行可能な形にするための決まり文句)int main(void)
▶️ メイン関数
(プログラムの開始位置を指定する関数)- 波括弧{ }の中に本文(命令)を書く
return 0;
▶︎ プログラム処理の終了の合図。省略可\n
▶️ 改行
(本によっては¥nと記載があるがコンパイル後に反映されない可能性有)
ちなみに、別の動画でメイン関数のことをvoid main()
と書いていたので真似してみたらコンパイルできませんでした。
コンパイルのざっくりとした流れ
- ターミナルでプログラムコードが保存してあるディレクトリにcdコマンド等を使って移動
- プログラムのコンパイル
gcc [ファイル名]
(exgcc hello.c
)
(コンパイルが正しくできていれば同フォルダにa.out
という名前の実行可能ファイルが作成できている). - 実行可能ファイルの実行
./a.out
変換指定子
C言語のprintf()、fprintf()、sprintf()、scanf()、fscanf()、sscanf()などの関数で使用する記述子。 変数に代入されている文字や数字を使用する際にどのように変換するかを指定するためのもの。
入力フォーマット指定子と出力フォーマット指定子の二つあるが、下のものは両方で使える。
変換指定子 | 対応する型 | 意味 |
%c | char | 一文字だけ入力or出力 |
%s | char(配列) | 文字列を入力or出力 |
%d | int | 整数を10進数として入力or出力 |
%f | float | double 値を通常の小数表現で出力 (例:12.566371)。 |