質問: 全くの初心者ですので間違ったこと言ってると思いますがご了承ください c言語を学ぼうと思うのですが 環境構築がわかり辛いです visualstudioでデスクトップアプリケーションとか選んでprintfのビルドとかしてると失敗します cのファイルにすればいいとかmainの前にc++だと型を入れなきゃいけないとかatomというエディターでgcc(MinGC)だとかでそっちは動きました それはそれでいいのですが @なんというか純粋にc言語を勉強したいのと @WINAPIはc++ではなくc言語で使えるのか 聞きたいです 苦しんで覚えるc言語というのもあるらしいですが 起動したらエラーみたいなやつがでます それにあれだとcだけのやつなのだと思うのでWINAPIは使えないのでしょうか? 何かいい環境はないでしょうか 普通にやってる方は設定とか普通にやると思うんですけど ファイルの設定やらバッチやら毎回設定するのって凄い無駄な事してる気がするのですが
回答: なんというかいろんなものが混ざり合ってしまっている、実にカオスだ。 * 「苦しんで覚えるC」はC言語の入門本。pure C。良書です(個人的な見解) * Visual StudioはC/C++コンパイラやテキストエディタをすべてセットにしたIDEである * Visual StudioのC/C++コンパイラである`cl.exe`はC++コンパイラとしては最近かなりマシになっているが、CコンパイラとしてはC99にすらまともに対応していない。C言語の勉強には不向き。 * gccはCコンパイラである * mingwとはlinuxなどで標準的に使われているツール群でWindows向けのbinaryを吐くことができる環境。Windows上はもちろんLinux上でも動く(LinuxでクロスコンパイルしてWindowsで実行とかが一般的なユースケース) * Win32APIとはWindowsのもつ機能を利用するためのAPI。もちろんCから利用できるし、Cから使えるということはたいていどんな言語でも(難易度の差こそあれ)使える。 * いろんなコンパイラを同時に利用したい場合はCMakeを利用するといいです ありきたりなCMakeのプロジェクト作成 for C++ - Qiita * mingw-gccを利用するときの環境構築は様々な方法が乱立していましたが、現在ではmsys2を利用するのが圧倒的に楽です。依存ライブラリなどのパッケージ管理はArch Linuxでおなじみ`pacman`が利用できます。 * ぶっちゃけC言語勉強したいならWindows上でやろうとするより、Ubuntu(18.04LTSよりは16.04LTSのほうが今はまだ安定している感じ)とかManjaro Linux(Arch Linux系でmsys2と同じくpacman使える)とかを入れて使うほうがストレスフリーで快適。