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件)
- 最新から表示
- 回答順に表示
No.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関数を含む標準ライブラリとかが必ずリンクされるハズ。
No.2
- 回答日時:
> 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行以上はプログラムを書く必要はありません。
机上であれこれ考えて頓珍漢な事を聞くより、学習用の開発環境などをダウンロード、インストールして、実際にプログラム書いてみては。
学習サイトやサンプルは探せばあるでしょうし。
昔だと超お手軽なコンパイラがあったけど、最近は統合開発環境付きの物はデカくて重くてで、お勧め出来るのがちょっと無いかも。
そしてmain関数が求めるままに他の関数もリンクされていくわけです。とはどういう事でしょうか?教えていただけると幸いです。すみません。
No.1
- 回答日時:
どこが質問文なのか?どこが別の記事などの引用なのか?分からない。
質問文をしっかり読み返してみては?
スマホで書いてるなら、縦横回転させて、改行位置とかしっかり確認した方がいいと思う。
--
例えば、
main(){printf("Hello World.");}
と
main(){int a, b; a=2; b=3; a=a+b;}
って別々なプログラムをコンパイル、リンクして作成した2つの.exeファイルを、バイナリエディタや逆アセンブラなどで見比べてみるとか。
で、同じになってる部分が質問文で言うスタートアップとかリンカが追加した部分とかになるような話では。
main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。これが質問です。URLを貼っている部分と、C言語プログラマ、、、と、C言語におけるプログラミング、、、の所です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# C言語 3 2022/10/04 15:07
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語primeについて
-
Webプログラムってネイティブア...
-
VBA
-
指定したフォルダーを最前面表...
-
vba listviewにおけるtextのAli...
-
壁紙の変更
-
初級者の質問――time_tについて
-
プロダクションコードとは?
-
NumLockの制御について
-
signalハンドラに引数を渡したい
-
expectを使用しない対話型処理
-
部品(ソースコード)は自分の...
-
C言語の勉強法について
-
VBAのプログラムが動いているか...
-
Arduino nano(アルドゥイーノ ...
-
C言語にて作成中の三目並べにつ...
-
COBOLのS9タイプからXタイプへ...
-
Pythonを用いて等高線図を作成...
-
openGLで物体を半透明にして表...
-
Visual C++でDESを使って文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba listviewにおけるtextのAli...
-
プロダクションコードとは?
-
指定したフォルダーを最前面表...
-
Webプログラムってネイティブア...
-
COBOLのS9タイプからXタイプへ...
-
VBコンソールアプリ(.NET Frame...
-
VBA
-
2値化した画像の黒い部分のピク...
-
初級者の質問――time_tについて
-
無限ループ中にある任意のキー...
-
Arduino nano(アルドゥイーノ ...
-
世界一美しいソースコード
-
VBAにてTIFFから画像を取込みた...
-
C言語でpingを実行してその結果...
-
三次元のグラフを書きたいので...
-
マイコンからプログラムを読み...
-
C言語→MATLABへの変換で、困っ...
-
XPathの関数「text()="value"」...
-
URLの最初の「h」を略す
-
プログラミングの問題と解答例...
おすすめ情報