【ISSUE】C言語入門(FizzBuzz書いてみた)
2024年12月23日 22:38
こんにちは!ばーんです。
今回はC言語でFizzBuzz書いてみたのでその経緯などと、C言語初めて触った所感などを書いていきます。
ちなみにC言語は
といった理由で今回取り組みました。
初めての言語はとりあえずhello world書いてFizzBuzz書けばふんわり掴めるでしょー!
という安易な発想で進めていきました。
http://www9.plala.or.jp/sgwr-t/c/sec01.html
今回はこちらのサイトを中心に進めていきました。内部仕様にも触れられており大変参考になりました。
Windowsはいくつか手順踏むみたいです。
Macは1工程のみなので優しいですね^^(僕はXcode元々入れてたので0でした)
こちらの記事(↓)が見易かったですね
https://qiita.com/N_Matsukiyo/items/464594d1fd3e6ef576a4
node.jsで慣れてたのでコンパイルの処理と実行の処理分かれてるのはビックリしました。
(最初何回もコンパイルしてましたw)
ccとgccの違いについてはこちら(↓)
(http://zorinos.seesaa.net/article/458565453.html)
何箇所か詰まったのが、
といったところです。下記でさらっと説明していきます。
変数を宣言する際に型の指定が必要。
これによってメモリの確保領域を変更しています。
グローバル / ローカル変数の概念もありますが今回JSライクに書こうとしたら詰まりましたw
(forの外側で変数宣言したものが値変わらずにそのままだった)
コンパルした時にerrorだとコンパイルされません。
warningだと動きます。中の文章はどちらもちゃんと読む。
全部が全部型指定しなくても動いてくれます。が、一定のアルゴリズムで変換するので現代のモダンな言語みたいに「いい具合に」はやってくれませんでした
"FizzBuzz: %d\n", i
のところでは
%d
が変換指定子
\n
がエスケープシーケンスです。
https://webkaru.net/clang/variable-printf/
標準(入)出力を自分が理解し切れていないのでうまく説明できないのですが、
\n
書かないと改行されないとは思ってなかった…
これがおすすめ(らしい)です。エラーも書いてる段階で表示されるし、入力補完もあったので使い易かったです。
入門サイトでもここがむずかしい!と書かれていたのですが、要は参照渡しなのか?値渡しなのか?ということかと(違ったらすいませんw)
変数宣言時に型を指定しますが、中に混ざっていてもOKというものみたい。
これもざっくりオブジェクトのようなもの(メソッドは入れれない)であってるはず…
JSでいうとこのrequireみたいなものですね(多分)。
C言語が低レイヤの言語なのでかなり簡単な処理でも関数の宣言が必要だったりします。
(例)文字と文字を結合する関数など
その数が中々多いので、使う関数をincludeする必要があります。
最後までみていただいてありがとうございましたm_ m
全然ちゃうわ!みたいな自分の認識齟齬があれば言っていただけると大変助かりますm _m
次に何を作るか決めていないので「こんなのオススメやで」みたいなのあれば教えてください^^
[cv:issue_marketplace_engineer]
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。