teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

関数について追記

2020/03/02 12:50

投稿

thkana
thkana

スコア7738

answer CHANGED
@@ -91,4 +91,16 @@
91
91
  int a;//ここで実体が生成される
92
92
  ```
93
93
 
94
- となり、いくつかのファイルを結合する時に実体が一つしかない、ということで正しくリンクが行われます。
94
+ となり、いくつかのファイルを結合する時に実体が一つしかない、ということで正しくリンクが行われます。
95
+
96
+ ---
97
+
98
+ 関数の場合は、ヘッダには「プロトタイプ(関数原型)宣言」を記述し、ソースに定義を記述するのが普通です。
99
+
100
+ int func(int) ; //プロトタイプ宣言。返り値の型、関数名、引数の型リストのみ(仮の引数名があっても構わない)等が記述され、関数の()のあとは;で終端になる。
101
+
102
+ int func(int a){ //関数の定義。返り値の型、関数名、引数のリスト(引数名必須)が記述され、関数の()に続いて{ }に囲んで関数の内容を記述する
103
+ return a*2;
104
+ }
105
+
106
+ プロトタイプ宣言はそもそもがextern属性ということになっているのでexternを記述する必要はありません。