アプリ版:「スタンプのみでお礼する」機能のリリースについて

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 回答 (3件)

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

とはどういう事でしょうか?

質問文に書いたようなmain()関数だけのプログラムでなくて、複数の関数が関数を呼び出して、それらが別の~.cとかライブラリに定義されているような大きなプログラムの話では。

大きめの複数ファイルで構成されたサンプルとか持って来て、main.cだけコンパイルすると、main.cに書かれている(求められている)アレやコレが無いぜってエラー出してくれるハズ。

--
例に挙げてる、
main(){int a, b; a=2; b=3; a=a+b;}
はmain()関数は他の関数とか求めてないから、リンクされないかも。
(もしかして、何もしなくて標準ライブラリはリンクされるかも。)

一方で、
#include<stdio.h>
main(){printf("Hello World.");}
はprintf関数を含む標準ライブラリとかが必ずリンクされるハズ。
    • good
    • 0

> main関数以降は、プログラマが書くのですよね?



main関数以降というのは、

1:#include <stdio.h>
2:int main()
3:{
4: printf("Hello\n");
5: return 0;
6:}
7:

3~6行目の事?これはmain関数の本体です。2行目だけがmain関数ではありません。
7行目の事?空行は意味無いです。書きたきゃ書いていいと思うけど。

--
> プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?

C言語でプログラム作成、コンパイル、リンクして、a.outなりa.exeの実行形式を作成、実行した事が無いんでしょうか?

上の「Hello」を表示するプログラムは、6行書いてコンパイル、リンクすると実行形式の.exeなどが作成され、.exeをダブルクリックで実行すると「Hello」と表示されます。
上の6行以上はプログラムを書く必要はありません。

机上であれこれ考えて頓珍漢な事を聞くより、学習用の開発環境などをダウンロード、インストールして、実際にプログラム書いてみては。
学習サイトやサンプルは探せばあるでしょうし。
昔だと超お手軽なコンパイラがあったけど、最近は統合開発環境付きの物はデカくて重くてで、お勧め出来るのがちょっと無いかも。
    • good
    • 1
この回答へのお礼

そしてmain関数が求めるままに他の関数もリンクされていくわけです。とはどういう事でしょうか?教えていただけると幸いです。すみません。

お礼日時:2021/08/22 14:21

どこが質問文なのか?どこが別の記事などの引用なのか?分からない。


質問文をしっかり読み返してみては?
スマホで書いてるなら、縦横回転させて、改行位置とかしっかり確認した方がいいと思う。

--
例えば、

main(){printf("Hello World.");}

main(){int a, b; a=2; b=3; a=a+b;}

って別々なプログラムをコンパイル、リンクして作成した2つの.exeファイルを、バイナリエディタや逆アセンブラなどで見比べてみるとか。
で、同じになってる部分が質問文で言うスタートアップとかリンカが追加した部分とかになるような話では。
    • good
    • 0
この回答へのお礼

main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。これが質問です。URLを貼っている部分と、C言語プログラマ、、、と、C言語におけるプログラミング、、、の所です。

お礼日時:2021/08/22 09:38

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