質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

Q&A

解決済

7回答

1079閲覧

Cの開発環境について

leaper

総合スコア4

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

IDE

IDE、統合開発環境((Integrated Development Environment)とは、テキストエディタ以上の機能を提供して、ソフトウェア開発を効率をあげるコンピュータプログラムを指す。

0グッド

0クリップ

投稿2020/06/04 15:26

つい最近学校の授業でC言語の授業を始めたものです。ほんとに始めたばかりなので、間違っていることもあるかと思いますが指摘してくださると幸いです。
今の状況はこんな感じです。
コンパイラはbcc32(先ほどの回答を見る感じめちゃくちゃ古いものらしいです)
実行方法は、コマンドプロンプトにbcc32 @@@.cと入力しコンパイラしたものを@@@.exeで実行しています。エディタはVS codeです。(VS Codeもまだあまり使用方法を把握していません)
そこで質問なのですが、
。bcc32環境(?)を構築しておいてまたほかのC言語環境を構築することは可能か。またお勧めのコンパイラは何か。(bcc32は授業で使用する可能性が高いため)
・IDEというものがあることを知りEclipseやVisual Studioなどをお勧めされましたが、導入すべきでしょうか。(大まかな理解ですが、テキストエディタ、コンパイラ、デバッガが一緒になったものという解釈をしています)
・実行するときは毎回コマンドプロンプトを起動し上記のbcc32 @@@.cを打つのが普通なのですか。VS codeの上のほうには実行というタブが存在しているが用途がわからないです。
大まかな質問で申し訳ありません。何か指摘点や気になるところがあれば言ってくださると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

ベストアンサー

皆さま、色々と書かれていますが、、

bcc32環境(?)を構築しておいてまたほかのC言語環境を構築することは可能か。

可能です。システムの環境変数を書き換えるものは、色々と面倒なので、あまりやりたくないですね。bcc32環境はちょっと分かりませんが、コマンドプロンプトを立ち上げた状態で、環境変数を見るとある程度(!)わかります。

IDEというものがあることを知りEclipseやVisual Studioなどをお勧めされましたが、導入すべきでしょうか。(大まかな理解ですが、テキストエディタ、コンパイラ、デバッガが一緒になったものという解釈をしています)

導入すべきかどうかはあなた次第。便利ですが、おせっかいな機能もあります。性能の低いPCだと重い(操作にすぐに反応しない)です。プログラムが 1ファイルまたは、数ファイル程度だと、どっちでも良いのでは? (この辺は人によって意見が違うと思う)
ただ、Visual Studioでサポートされている Cと、bcc32のC言語は、違うので注意が必要。他の方も書かれているように、bcc32は古いと思われます。また、それぞれに独自の拡張があったりします。
また、他の方が、C++ と書かれていますが、C/C++と書かれる事も多く、Cソースの多くは、C++としてのコンパイルもだったりします。

VS codeの上のほうには実行というタブが存在している

VS codeでは、プログラムコード(Cも含む)の実行をサポートしています。ただし、それなりの環境設定が必要で、それに対する質問もここで見る事があります。
まあ、使う使わない、、はその人の自由。 ちなみに自分の場合、テストプログラム程度(1ファイル)だと、エディタ(VSCodeなど)で作成(編集)/保存し、ctrl-Tabで、コマンドプロンプトに移って、コンパイル/実行。 (最近のコマンドプロンプトは、ヒストリーとか、あるので、全てタイプする事は減ってますね)

投稿2020/06/06 01:15

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

leaper

2020/06/09 05:21

皆様回答ありがとうございました。一番わかりやすかったpepperleaf様の回答をベストアンサーにさせていただきます。
guest

0

別の開発環境を構築することは可能です。

個人開発者であれば、無料で使用可能です。
Visual Studio Community

投稿2020/06/05 14:25

ai_2013_dev

総合スコア338

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下は、自分の好みです。

OS:Linux(CentOS)

コンパイラ:gcc

エディタ:vi

ユーティリティ:make (*1)

(*1)makeについて
Makefileを1から作成するのは大変なので、自動生成ツールを使うと良いでしょう。
自分はmkmfを使っていましたが現在だとGNUのAutomakeあたりでしょうか?

IDEは学校の勉強レベルなら無くても良いと思います。

投稿2020/06/05 02:23

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Eclipse なら、GCC になりますね。
Windows 環境なら、Pleiades の方でインストールすれば、自動的に MinGW の環境まで設定されるから面倒少ないですし。

Visual Studio なら Visual C++ になります。

IDE ならデバッグも楽(というか楽すぎてかえって勉強にならない可能性も……)ですよ。
唯一の欠点は「重い」ことです(w

余談:開発環境の重さを言い出すと「よろしい、ならば Emacs だ」という信者マニアがわいてくることがあるのでご注意を(w
※いや Emacs はいいものデスヨ?

投稿2020/06/05 00:41

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

EclipseやVisual Studioなどをお勧めされましたが、導入すべきでしょうか。

Eclipseは無料です
VisualStudioも、個人使用なら無料のものがあります

投稿2020/06/04 23:06

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コマンドプロンプトという事は、windows環境ですかね?
学習だけなら、最初はコンパイラをあまり気にしなくて良いと思います。
むしろ、古いコンパイラの方が色々面で正しく理解するための勉強になると思います。
(新しいコンパイラは色々勝手に良きに計ってくれるので、意図しなく動いてしますなんてあるあるですww)

bcc32環境(?)を構築しておいてまたほかのC言語環境を構築することは可能か。またお勧めのコンパイラは何か。

1つのPCにコンパイラを複数入れる事は可能です。
(というかC言語の現場ではプロジェクト毎にコンパイラが変わるから、複数入ってるのが普通です。)
まぁ流石にbcc32は古すぎなので、入れるならgccがいいと思います。

IDEというものがあることを知りEclipseやVisual Studioなどをお勧めされましたが、導入すべきでしょうか。(大まかな理解ですが、テキストエディタ、コンパイラ、デバッガが一緒になったものという解釈をしています)

eclipseやVisualStudioと言ったIDE(統合開発環境)は機能がてんこ盛りで、動作は重いし、初心者には扱いづらく、エラー原因か切り分けできないと思うので、最初はいらないと思います。というか初心者はおすすめしません。
一通りコードが書けるようになってからでも遅くないです。
ちなみに、VSCodeでも拡張で用途的に十分ですので、どうしても欲しいならVSCodeで設定するのが良いと思います。

実行するときは毎回コマンドプロンプトを起動し上記のbcc32 @@@.cを打つのが普通なのですか。VS codeの上のほうには実行というタブが存在しているが用途がわからないです。

基本的にデバック用途ですね。VSCodeは拡張次第で簡易的なIDEになります。
↓環境設定するならわかりやすそうな記事があったので、参考にしてみて下さい。
https://qiita.com/N_Matsukiyo/items/464594d1fd3e6ef576a4
(昔は化石化した人が多くて、C言語でVSCodeみたいなモダンエディタを使う人全然見かけませんでしたが、近年増えたのでしょうかね!?ググれば他にもいっぱいでてきますww)

投稿2020/06/04 18:29

編集2020/06/04 18:34
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/06/04 22:28 編集

> (新しいコンパイラは色々勝手に良きに計ってくれるので、意図しなく動いてしますなんてあるあるですww) ありますか? 例えばどんなものですか? > まぁ流石にbcc32は古すぎなので、入れるならgccがいいと思います。 bcc 独自のライブラリや処理系依存の挙動やコンパイルの仕方やエラーメッセージなどがあるので、本番環境と同じものの方が良いと思いますが、それをおして gcc を選ぶメリットがありますか? > IDE(統合開発環境)は機能がてんこ盛りで、動作は重いし、初心者には扱いづらく、エラー原因か切り分けできないと思うので、最初はいらないと思います。というか初心者はおすすめしません。 使わない機能は使わなければいいし、動作も特別重くないし難しくもないと思いますが、それは置いといて、エラー原因が切り分けできないというのはどういう意味ですか? > ちなみに、VSCodeでも拡張で用途的に十分ですので、どうしても欲しいならVSCodeで設定するのが良いと思います。 学校で使われているのはおそらく bcc の IDE だと思いますが、初心者に別のものを勧める意味がありますか? > (昔は化石化した人が多くて、C言語でVSCodeみたいなモダンエディタを使う人全然見かけませんでしたが、近年増えたのでしょうかね!?ググれば他にもいっぱいでてきますww) Vim を使っている人は化石という意味ですか? 恐らくあなたより最新技術に詳しい人も多いと思いますが。
tacsheaven

2020/06/05 00:51

コマンドプロンプトで bcc32 {ソース} → 実行、と書かれているので、IDE すら使用してないようですね。昔懐かし LSI-C が、bcc32 に変わった感じ? make も使ってないでしょうね。 授業なので、それで足りる程度だとは思います。 昔はそれこそ Emacs や Vi からコンパイルできた(コマンドラインを叩けた)から、VS Code なんて必要としなかったですヨネー(棒
Zuishin

2020/06/05 01:28

ステップ実行もウォッチ式も出番無さそうなのでわざわざ vscode を導入する意味も薄そうですし、もし授業でそれに触れるならインストール済みのものを使う可能性が限りなく高いですね。 学校とは別に趣味で使うなら話は変わりますが。
退会済みユーザー

退会済みユーザー

2020/06/05 21:07 編集

Zuishinさん なんか、明確に回答が間違っている部分の指摘じゃなくて、 言葉尻をとってマウントされていて、何かしら気に障ったのなら申し訳ないww エンジニアにもいろんな人がいて、それぞれの考え方があって、それぞれのアプローチがあってもいいと私は思いますよ。 余り水掛け論的なことをするつもりはないですが、補足や誤解を解く意味で回答コメントしておきますね。 > コンパイラについて コンパイラによっては文化や考え方が違っていて、メモリや処理速度、ハードリソースなどを考慮してソースコードの書き方によってアセンブリレベルで最適化の手法やロジックが異なります。それにより、設計者の意図に反したメモリへのアクセスや処理タイミングへの介入があったりし、エラーが発生したり逆にコンパイルエラーをすり抜けて別の動きをしまったりします。まぁ、普通そのためにコーディングルールで縛ったりするのですが。(コンパイラの仕様を細かく見た人や組込エンジニアでプラットフォームとかを弄ってる人であれば大体が知っているはずです。) まぁ、ハードの深い領域までアクセスできるCならではの特殊ケースの問題であって、一般的なコーディングには余り意識しないレベルかもしれませんので、蛇足でしたかね。 そもそも本番環境ってなんですかね?質問の内容的にただ別のコンパイラで動作確認できる環境が欲しいだけと理解して回答したので、gccであれば一番メジャーなコンパイラなのでつまづいてもググれば同じ環境の記事が多いかなと思っておすすめしました。(あくまで「コンパイラのオススメは」の質問に対する回答ですよ。) > IDEについて IDEについては、ある程度規模のあるシステム開発しないのであれば、特に必要ないと私は思っています。 初心者+windowsにありがちな、インストールや設定など環境構築上のミスから起因するコンパイルできない,動かない原因と単にコーディングミスがごっちゃになる人も少なからずいるので。(あとで追加したpathの干渉とか…) すでにvscodeを使っているということだったので、今使っているものにアドオンできるという意味で、別のものを進めたつもりはないです。(ここもあくまで質問の「導入すべきか」に対する「要らない、どうしても欲しいなら今使ってるVScodeを拡張すれば。」って意味の回答ですよ。) どこをどう見れば、bccのIDEを使っていると思ったのか教えて欲しいですが、私も情報系出身なのでわかりますが、実際の大学授業レベルで最初からIDE使うことなんてそうそうないので、IDEを勧める時点でそれこそ別の物を勧める事になると思ってます。(大学はそもそもプログラミングやシステム開発を教えるのでなくて、コンピュータサイエンスを教える場所。よって授業ではIDEは基本要らない思想。研究は実開発が伴うのでIDEを使う。と私は理解している。) > Vim を使っている人は化石という意味ですか? 多分この部分が自分が言われていると思って、一番気に障ったんでしょうね。。完全に蛇足でしたねww 別に全員が化石化してる言ってませんし、Vimを馬鹿にしているつもりなんてありませんし、ましてや自分が最新技術に対して詳しいとも思ってませんよ。C言語に対して4、5年ブランクありますしねww (viとかemacsとか秀丸とかTeraPadとかさくらエディタとか言われるならまだしも…vimってガンガン使われていますし、、、そもそも一言もvimって言ってないし、どんなマウントの取り方!?www) Cで作られたのシステムはレガシーなシステムも多いので、その分レガシーな人が多数います。最新技術をどんどん取り入れるというより、信頼性を重視した開発になる事も多いので、既存のやり方を踏襲したやり方になりがちです。そういう意味でも、使い慣れたツールを使い、新しいものや技術のインプットをしない化石化した人も多いということです。 まぁ、GeekはCを触る上でVimや秀丸などのエディタをマクロ化したり独自カスタムする人も多く、むしろIDEなんて要らないぜの人が多い印象があり、特にモダンエディタの需要が無かったので、VScodeなどモダンな環境構築の記事など、日本語ではさほど多くなかったという意味ですよ。(自分が最初にVSCを試しに使うときにそうだったので。)
Zuishin

2020/06/05 22:04

「マウント」まで読みました。質問の回答になっていないので低評価します。
hentaiman

2020/06/05 22:36 編集

横からすいませんが単純に分からないので教えて下さい > 設計者の意図に反したメモリへのアクセスや処理タイミングへの介入があったり コンパイラによって変わるんですか? 自分のC経験はサーバーミドルウェアの不具合修正兼改造を一度だけやった程度なので、もしもgccじゃなくて別のもの使ってたら『メモリへのアクセスや処理タイミング』が原因でコンパイル出来ないまたはコンパイル後(すり抜け?てしまう)に動かない可能性があったのか?などと気になりまして。 お手数ですが具体的なコードと対象のコンパイラを合わせて教えて頂けると嬉しいです
tacsheaven

2020/06/06 00:15

デバッグ用に(最適化を落として)コンパイルすると、勝手にメモリを0クリアしてくれたりとかする場合がありますね。(なのでデバッグだと0初期化されてて正常だが、リリースビルドだと初期化漏れするとか) ※動作環境依存だと、malloc で指定したより「多く」のメモリが確保されてしまって、境界越えたことに気づけなかったことがあります(本来 Segmentation Fault が起きるはずが起きなかった) あとこれもオプションに依りますが、メモリ配置のアライメントが変わることがありますからそれによっては意図せず動きが正しく見えることもおかしくなることもあり得ます。 良くも悪くも C は「なんでも自己責任で許す」から。
raccy

2020/06/06 00:44

tacsheavenさんの例は、もともとのコードに「未定義な動作」が含まれていた場合の話ですよね。hentaimanさんが聞きたいのは、「未定義な動作」とか「環境依存」等と仕様書で明記されていない部分で、違いが出るところを教えて欲しいのだと思います。
hentaiman

2020/06/06 00:56

分かりやすいご説明とmallocの実例ありがとうございます。小手先での修正に必要な知識すらなく作業してたので、リスク知れて勉強になります。 いいえ、Cは無知なのでどんな話でも参考になります。先に書いた通りの改修しかした事無いので、コンパイル出来て動作してても知らずにバグってた可能性があるのかと思っての質問でした。 ただ文章の説明よりも実際のコードとコンパイラーの組み合わせ教えてもらえた方が動かして理解し易いので、提示してもらえたらと思った次第です。
hentaiman

2020/06/06 01:12

回答者のコメントを見ての質問だったけど、回答者以外でもサンプル挙げられる人がいればコードとコンパイラーを併せて教えて(提示して)頂けると幸いです
退会済みユーザー

退会済みユーザー

2020/06/06 01:31 編集

IDEを勧めない理由が的外れすぎて、突っ込まれてもしょうがないと思いますね。プログラマー的には、効率的で楽をする思考を追及すべきだと思うので、敢えてIDEが使える環境で使わない、というのはナンセンスと考えます。(ちなみに私は学生時代にVisualStudio6から入りました) 別にmakefileエディタで書いてコマンド叩いてビルドも出来ますが、人生は短いので余計な事で時間を浪費しなくてもよいでしょう。制限された環境というのは当然あるでしょうが、そういう環境になってから環境に合わせた開発手法を改めて学習すればいいだけの話です。 知識として、コンパイラやリンカが裏で動いている事は知っておくのは悪くないですが、それはコマンド叩く学習として別に勉強すればよいかと思います。常にコマンド叩く必要もないですね。
guest

0

bcc32環境(?)を構築しておいてまたほかのC言語環境を構築することは可能か。またお勧めのコンパイラは何か。(bcc32は授業で使用する可能性が高いため)

多分可能ですが、Windows環境なら情報量と機能面でVisualstudio(VC++)安定だとは思います。bcc系なら、C++Builderも無料版が出ていたような。

IDEというものがあることを知りEclipseやVisual Studioなどをお勧めされましたが、導入すべきでしょうか。(大まかな理解ですが、テキストエディタ、コンパイラ、デバッガが一緒になったものという解釈をしています)

無料だし、ディスク容量が許すならとりあえず入れておいていいんじゃないでしょうか。さっとソース書いて、一々コマンド叩かなくてもすぐ実行できるし、エディタ上からブレークポイント設定して、実行時に変数の値などをリアルタイムにチェック出来るので便利です。

VSCodeは使ってないので、ちょっとわかりません。

投稿2020/06/04 18:16

編集2020/06/04 18:18
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問