天国にいけるC言語入門 ヘキサ構造体 ver5.2130
🌞なぜ void newmadefunction(void){ printf("今日もよいC言語日和です。\n"); return ; } と自作関数が記述されるのでしょうか?(void)に注目
🌞なぜ void newmadefunction(void){ printf("今日もよいC言語日和です。\n"); return ; } と自作関数が記述されるのでしょうか?(void)に注目
#include <stdio.h>
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return ;
}
int main (void){
newmadefunction();
return 0;
}
プログラムの実行結果
今日もよいC言語日和です。
ソーラー「では なぜ
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return ;
}
と自作関数が記述されるのか?
ですね
この仕組みをみていきましょうか
まず
void newmadefunction(void)
の(void)の部分ですね。
自作関数newmadefunctionの定義は
printf("今日もよいC言語日和です。\n");
となっていますが
このprintf文には
printf("%d個りんごがあります\n",a);
の変数aのように
数値入力される変数が存在していません。
自作関数の定義に
数値や何かのデータを格納する
変数がないときは(void)
または何も記述せず()
と記述する決まりとなっています。
ですので
(void)の代わりに
()
と記述することも可能です
👇
#include <stdio.h>
void newmadefunction(){
printf("今日もよいC言語日和です。\n");
return ;
}
int main (void){
newmadefunction();
return 0;
}
プログラムの実行結果
今日もよいC言語日和です。
👆
このプログラムの自作関数の定義では
数値や何かのデータを格納する
変数がないので
void newmadefunction(){
printf("今日もよいC言語日和です。\n");
return ;
}
のように
()に何も記述しない
void newmadefunction()
と記述されています。
printf("%d個りんごがあります\n",a);
のように自作関数の定義にint型の変数a
が含まれている場合は
自作関数は
void newmadefunction(int a){
printf("%d個りんごがあります\n",a);
return ;
}
と記述します
(自作関数名は newmadefunction
である必要はなく自由につけることができます。)
つまり変数aが自作関数の定義に含まれている場合は
そのaの変数宣言が行われている必要があるのですが
そのaの変数宣言が
自作関数 newmadefunctionの引数の()内に
newmadefunction(int a)
と記述されるわけです
自作関数の定義に
printf("%d個りんごがあります\n",a);
の変数aのように
数値入力される変数aが存在していない場合
void newmadefunction(){
printf("今日もよいC言語日和です。\n");
return ;
}
👆このように自作関数を定義して
自作関数 newmadefunctionをmain関数内で呼び出して
使用するわけですが
そのときは
newmadefunction();
と記述します。
この場合は
newmadefunction(void);
と記述してはいけません。
newmadefunction(void);
と記述すると
#include <stdio.h>
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return ;
}
int main (void){
newmadefunction(void);//👈ここに注目
return 0;
}
プログラムの実行結果
EAZY IDECの場合
ファイル「C:/Users/solarplexuss/AppData/Local/EasyIDEC/project/default/main.c」の
「10行目」で記述エラーを発見しました。
「identifier」を付け忘れています。
Visual Studioの場合
ビルド結果(Visual studioの場合)
エラー C2144 構文エラー: 'void' は ';' によって先行されなければなりません。
エラー C2144 構文エラー: 'void' は ')' によって先行されなければなりません。
エラー C2059 構文エラー: ')'
エラー (アクティブ) E0254 型名は使用できません
警告 C4091 '': 変数が何も宣言されていないときは、'void' の左辺を無視します。
と表示され
プログラムを実行できません。
次に
自作関数の定義に
printf("%d個りんごがあります\n",a);
の変数aのように
数値を格納するint型の変数が存在している場合
👇
void newmadefunction(int a){
printf("%d個りんごがあります\n",a);
return ;
}
👆
自作関数 newmadefunctionの記述は
このようになります
そして
この自作関数 newmadefunctionをmain関数内で呼び出して
使用するわけですが
そのときは
newmadefunction(1);
のように記述して
プログラムを構成します。
#include <stdio.h>
void newmadefunction(int a){
printf("%d個のりんごがあります\n",a);
return ;
}
int main (void){
newmadefunction(1);
return 0;
}
プログラムの実行結果(Visual studioの場合も)
1個のりんごがあります
つまり
初期化されていない変数aに1を代入しているというわけです。
(結局int a=1;をおこなっているわけです。)
newmadefunction(1);
と記述することにより
1がint aに代入されると
aの値は1になることにより
自作関数newmadefunctionの定義内の
printf("%d個のりんごがあります\n",a);
の
aに1が代入された
printf("%d個のりんごがあります\n",1);
が実行されることになります
ですので
コマンドプロンプト画面に
1個のりんごがあります
が表示されることになります。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます