プロが教える店舗&オフィスのセキュリティ対策術

C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、
以下のかぶくんまんさんの回答です。
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
で、
C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。
という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。
という所が分かりません。教えていただけると幸いです。すみません。以下のURLです。
https://detail.chiebukuro.yahoo.co.jp/qa/questio …

A 回答 (4件)

プログラムがどこから始まるように実行ファイルを作るのかは、実行ファイルを最終的にまとめるリンカが設定します。



それを、C言語用に main 関数を呼び出すスタートアップから始まる様に、コンパイラドライバが、リンカに指定します。

スタートアップが、main 関数を呼び出す様にしているので、リンカは main 関数を探してリンクします。
また、main 関数が使う様にしている関数や変数も、リンカが探してリンクし、以下同様に、必要な物を探して実行ファイルにします。
    • good
    • 0
この回答へのお礼

main関数以降は、プログラマが書くのですよね?プログラムをリンカで関数をリンクしていくということでしょうか?教えていただけると幸いです。すみません。
C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。
というのは、正しいのでしょうか?教えていただけると幸いです。すみません。

お礼日時:2021/08/21 23:02

>main関数が求めるままに他の関数もリンクされていくわけです。

はどういう意味でしょうか?

ごめんなさい、何を質問しているのか分かりません。

知恵袋の他人の回答の意図を聞いているのなら、そんなの追求することは、C言語の学習において意味はありません。

「main関数が求めるまま」というのが、そもそも、日本語としておかしいし。
    • good
    • 0
この回答へのお礼

本当は、ここまでを聞きたいのですが。
C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、
以下のかぶくんまんさんの回答です。
https://detail.chiebukuro.yahoo.co.jp/qa/questio

お礼日時:2021/08/21 17:42

>プログラマが関数をリンクさせる様なプログラムを書くのではないのでしょうか?教えていただけると幸いです。

すみません。

「リンクさせる」という意味がわかりません。

関数は必要に応じて作るものなので、リンクしなければいけないというものではありません。

小さなプログラムなら、mainの中で完結することもあります。
    • good
    • 0
この回答へのお礼

main以降は、プログラマが書くわけですよね?では、
main関数が求めるままに他の関数もリンクされていくわけです。はどういう意味でしょうか?教えていただけると幸いです。すみません。

お礼日時:2021/08/20 23:20

初歩的なことを質問しているように見えますが、回答が高度で、まずは基礎的なところを把握された方がいいと思います。



>main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?

そもそも、プログラムには「書く目的」があります。

プログラムは、「入力」=>「処理」=>「出力」という動きが基本になります。

例えば、入力した数字に、1を足した答えを出す、など。

処理が、プログラムに相当します。

C言語で書かれたプログラムは、まず「main関数」から実行されることになっています。これは、そのような決まりを作ったからです。

他の関数は自由な名称(ルールはありますが)をつけることができます。
目的に応じて作ります。

最初の質問の、プリプロセッサやリンカの話は、初期段階ではあまり重要ではありません。必要になってから学習すればよいと思います。
    • good
    • 2
この回答へのお礼

プログラマが関数をリンクさせる様なプログラムを書くのではないのでしょうか?教えていただけると幸いです。すみません。

お礼日時:2021/08/20 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!