しーげんご!
私が今メインで触ってるのはUnityのC#ですが、学校の授業でC言語も触ってたので先にそちらで(主に初学者の方が)悩む(?)ところを書いていこうかなーと思います。
えすてぃーでぃーあいおー?
まずはこちらのソースコードを。
#include<stdio.h> int main() { printf("Hello,world!\n"); return 0; }
実行結果はもちろん
Hello,world!
となりますよね。分からない人は一度確認してみてね!
ここで最初に書く#include<stdio.h> 。授業だと「書くのが当たり前」とか「おまじない程度に」とか、さらーっと流されることありますよね。
これは一体何なのか…気になりませんか?
気になりますよね!?
ねっっっっっ!?!?(威圧するな←)
実はこのstdio.h…
Standard Input/Outputの略なんです!!
直訳すると、「標準入力/出力」。また、".h"はヘッダーファイルを表しています。
このヘッダーファイル、インクルードするだけでprintfやscanfなどの画面出力や入力が使えるようになるんです!すっげぇな(語彙力←)
stdio.hがつかえないせかい
もしstdio.hが使えないとすると、printfも使えないことになります。 printf無しで同じ出力を得ようとすると…
#include<unistd.h> int main() { const char msg[] = "Hello,world!"; write(STDOUT_FILENO, msg, sizeof(msg) - 1); return 0; }
となります。なんだこれめんどくさ
こんな面倒なことをstdio.hをインクルードするだけで簡単におこなえてしまうのです。強い(確信)
後者の記述はどちらかといえばOSいじるような人が使うレベル(偏見)なので、無難にstdio.hをインクルードしてprintfとか使った方がいいと思います。
いんくるーどをわすれたら?
ちなみにインクルードし忘れたままコンパイルすると…
警告: incompatible implicit declaration of built-in function ‘printf’
と出るだけで普通にコンパイルが通ってしまいました。(直訳するとprintfっていう非互換の暗黙的な宣言しとるぞって意味です)
たぶんコンパイラのバージョンとかでこの辺は変わってくると思うので、こんな感じの警告が出た時はちゃんとコードに不備がないか確認しましょうね(戒め)
まとめ
- stdio.hは標準入出力を司り、コード入力を楽にしている
- インクルードし忘れたままprintfなどを使おうとすると、エラー、あるいは警告が発生する
さいごに
今回はここまでにしようと思います。しばらくはC言語について書くことになると思います。語彙力ないのと単純に忙しいので更新は不定期になりますが、気長に待っていただけると嬉しいです。
間違ってもstudio.hとか書くんじゃないぞ…?絶対だぞ…?フリなんかじゃないからな…?