C言語の環境をなるべく楽に作る+α
C言語の環境構築
MacOS向け(erniogi.iconの環境はBigSurだけどCatalinaでも大差ない)
質問疑問があれば@erniogiに書いてください / またはdiscordでdm
役に立つだろう知識 / 参考書
git/github
docker
アルゴリズム
注意
MacOSに入ってるコンパイラはclangなのにgccのふりをしている
gccを指定するにはパスを通すことが必要
ここは読み飛ばしてもいいですerniogi.icon
行程
0. homebrew,Command Line Tools(CLT)のインストール
homebrew
MacOS / Unix上のパッケージ管理システム
同様のもの : MacPorts
CLT
Macに標準で入っていないコマンドを使えるようにする
1. エディタのインストール
VSCodeのインストール
VSCode拡張機能のインストール
見やすいsyntax highlight,インデントの可視化,ショートカットでの簡単なコード実行などができるようになる
2. 実際に動かしてみる
0. CLT,homebrewのインストール
code:bash
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
上の内容をターミナル(端末)上で実行
コピペしてねerniogi.icon
何か聞かれたらすべてYesまたはパスワード入力
詳しくはmacOS(またはLinux)用パッケージマネージャー — Homebrew参照
1. エディタのインストール
VSCode
code:bash
brew install --cask visual-studio-code
homebrewを使ってVSCodeをインストールしている
わざわざサイトでDLしなくていいから便利!
拡張機能のインストール
C/C++
C/C++ - Visual Studio Marketplace
コンパイラなど諸々のC/C++で必要なもの全部盛り
Visual Studio Intellicode
Visual Studio IntelliCode - Visual Studio Marketplace
高度な補完機能
Japanese Language Pack for Visual Studio Code
Japanese Language Pack for Visual Studio Code - Visual Studio Marketplace
日本語化
indent-rainbow
indent-rainbow - Visual Studio Marketplace
インデントが可視化される
Bracket Pair Colorizer
Bracket Pair Colorizer - Visual Studio Marketplace
対応する括弧に色がつく
Prettier
Prettier - Code formatter - Visual Studio Marketplace
コードを保存するとコーディング規約に沿った形に書き換えて(フォーマットして)くれる
括弧の位置,インデントの数など
2. 実際に動かしてみる
適当な階層で好きなCコードを書いて,実行してみてください
エディタの選択理由
Q. なぜVSCode?vim/emacs/sublime/xcode..でもいいんじゃないの
A. VSCodeが最も利用者が多いから。それとXcodeは重すぎる。
このあとやるといいこと(optionaryだけど強く勧める)
git / GitHub
バージョン管理システムgitを利用してソースコードを公開できるサービスがgithub
バージョン管理 :
変更履歴の管理ができる
いつ誰が何を変更したかの差分を記録
過去1000回の修正においていつ/なぜ特定のテストが動作停止してしまったのか?
特定の段階まで戻ったり,誤って消してしまったファイルを復活させたりできる
集中型と分散型がある
Githubの使い方は公式のチュートリアルが一番わかりやすい
手を動かしてまなべて,日本語でできる
Docker
ホストOSを汚さずに仮想OSを作れる
仮想OSで失敗しようが壊そうがホストOSには影響しないので問題ない
仮想OSで安全にいろいろな開発・実験できる
簡単に実験環境を作って使い捨てにできる
大きなソフトウェアを作ろうとすると,そのためには様々なプログラミング言語,言語が使えるライブラリなどが必要
それらは依存関係があり,バージョン(1.0.0とか2.0.0などのナンバリングのこと)によっては動かない
仮想OSの構築手順を、手続き的に記述できる
Dockerfile
インストールするライブラリ等をインストールの順番からインストールするバージョンまで決められる
仮想OSをコマンドで管理できる
複数の仮想OSを連携させることができる
docker-compose
プログラミングはできればなるべくDockerを使って仮想OS上で
ホストOSでいろいろ実験すると環境が壊れて面倒なことになる
C言語のおすすめ書 / コンテンツ
Head First C
手を動かしながら(豊富な図,クイズとともに)学習できる
電子工作なんかも触れられている
Cによるアルゴリズムとデータ構造 改訂2版
定番のアルゴリズム本
問題解決力を鍛える!アルゴリズムとデータ構造
上のCによる..やったなら必要ないです
C++が中心ですが,Cができればこの本の内容は読めます
Atcoder
とりあえず大量のプログラミング問題がある
モノづくり(プログラミングを使ってなにかを作る)には遠回りだけど慣れるならおすすめ
問題文が長くて嫌ならLeetcodeなども
低レイヤを知りたい人のためのCコンパイラ作成入門
CでCのコンパイラを作るオンラインブック
写経すればCの言語仕様,低レイヤが詳しくわかる