【C言語】コンパイルとリンクとビルドの話

昔、仕事現場で、

「リンクって何ですか?」

って聞いてきた若者がいたので、

ここできちんと説明した方が良いのかなと。

まず、コンピュータに命令を出すには、0と1で記述された「機械語」で命令を出さなければなりません。

機械語でなければコンピュータは理解できないのです。

なので、記述したソースコードを実行するには、ソースコードを機械語に変換する必要があります。

ソースコードを機械語に変換する処理を「コンパイル」といいます。

C言語の場合、ソースファイル毎にコンパイルを行い、オブジェクトファイルという形で機械語に変換します。

しかし、このままでは機械語の命令がソースファイル毎に分断されている状態なので、このままでもコンピューターに実行させることはできません。

そこで、実行に必要なファイルを1つに結合する「リンク」という作業が必要になります。

C言語の場合、ソースファイル毎に変換されたオブジェクトファイルと実行に必要なライブラリファイルを1つにまとめて実行形式のファイルに結合します。

一般的に「ビルド」と呼んでいるのは、この「コンパイル」と「リンク」を一括して行う作業をいいます。

次回は変数について説明しようと思います。

【C言語】最初のプログラム

前々からやろうと思っていた、プログラミングをレクチャーする記事を書きたかった。

なので、まずはC言語でやってみようと思います。

C言語はアプリケーションの世界では余り使われていませんが、ファームウェアやOSなどのハードに近い処理を行うところで、現在でも現役で使用されています。

それにC言語で身につけた知識は他の言語にも通ずる所が沢山ありますので、よりプログラミングの知識を身につけたいと思っているのなら、学んでいて損は無いです。

それではやっていきましょう。

使用するツールはVisual Studio 2017を使用します。

事前準備として、C++プロジェクトが使用できるようにします。

メニューから「ツール」→「ツールと機能を取得」を選択し、「C++によるデスクトップ開発」にチェックを入れます。

次にメニューから「ファイル」→「新規作成」→「プロジェクト」を選択して「Visual C++」のWindowsコンソールアプリケーションを選択します。

※「Windowsデスクトップアプリケーション」は何かとハードルが高いので、とりあえず今回は触れません。

そうすると、以下のようなソースコードが表示されます。

実は、この状態ですでにプログラムが出来上がっています。

実際に実行してみましょう。

メニューから「デバッグ」→「デバッグの開始」を選択してください。

こんな感じに表示されるはずです。

しかし、このコードはC++のコードで記述されています。

ですので、これをC言語のコードに書き換えます。

書き換える場所は以下の二箇所

書き換えたら先ほどと同じようにデバッグの開始をしてみてください。先ほどと同じ結果になるはずです。

それではこのコードの解説を行います。

#include <stdio.h>

stdio.hは標準入出力ライブラリを使用可能にするヘッダーファイルを適用する、という意味です。これを書かなければ、次に説明する「printf()関数」が使用できません。

標準入出力というのは「画面のコンソール」を差します。コンソール画面からキーボードの入力やコンソールに文字列を表示する、といった一連の機能をstdioライブラリで提供しています。

printf("Hello World!\n");

printf()は標準出力に文字列を出力する関数です。表示する文字列は()の中の「”」で括られた文字列です。

最後の「¥n」は改行を表しています。

次回はコンパイル、リンク、ビルドの話をしようと思います。

バンドリ7thライブ

2月21日~2月23日まで行われていたバンドリ7thライブのライブビューイングに参戦してきました。

2月21日に北海道で地震が発生し帰宅難民になりましたが、この件はここでは触れません。

まず1日目Roselia。

Roseliaのダークでクールな世界観をそのままステージで表現。

そして新曲も聴かせてくれました。

ステージの形も円形という特殊な形状で慣れないところもあり、沢山覚えなくちゃいけないこともあったと思いましたが、それを見せないパフォーマンスは素晴らしかったです。

そして恒例の「キャラを崩してはいけない」。笑わせて頂きました。

あと、志崎華音ちゃんが妙に色っぽい。

次に2日目RAISE A SUIREN。

チケットを家に忘れるという大失態を犯してしまいました!!

くそう、次は絶対に参加してやるからな。

最後は3日目Poppin’Party。

二回目の武道館もあってか、少し余裕があって、楽しんでいるという感じが伝わってきました。

それでいて、聞かせるところは聞かせてくれる。

キャラソン・寸劇からのアコースティック演奏も良かった。

そしてSILENT SIRENとの対バンライブ発表。もうバンドリの枠を越えちゃってるよ。

ここまでバンドリのスケールが大きくなってしまってしたのですね。

びっくりですわ。

そして、オイラの財布の中身も大丈夫ですか???

ライブビューイング中に地震かよ

2月21日午後9時頃に最大震度6の地震が発生しました。

この時、オイラは、すすきののディノスシネマズにて、Roseliaのライブビューイングに参加していました。

ライブの感想はまた後ほどと言うことで、

ライブ終盤、大体アンコールの時に突然揺れを感じ、、近くで誰かが飛び跳ねているのかな?とも一瞬思ったのですが、ビル自体が揺れている、という感じの揺れでした。

緊急速報のアラームの鳴っていましたね。

ライブビューイング自体は何事も無く終了しましたが、帰りはエレベーターが使えず、非常階段で7階から1階まで降りてビルから脱出しました。

が、問題はここからで、

最寄りのバスには長蛇の列。

地下鉄行ってみても、「当日の運行を終日取りやめ」とアナウンスがあり、

バスもパツンパツンの満員状態。

タクシーを使うお金もないので、その場でBooking.comで近くて安いカプセルホテルを探し、そこで一泊することにしました。

一泊2000円。

でも、カプセルホテルだから空調は蒸し暑く、鬱の薬も持っていないので、なかなか眠れず。

そのまま始発で地下鉄に乗るようにチェックアウトして、地下鉄で帰りました。

今思えば、マン喫行った方が安くて快適だったのかも?と思いました。

マン喫は余り利用しないので。

夏だったら家まで歩いて帰ってたんだけどね。

夜は、溶けた雪が凍って滑りやすくなっているので、歩くのは危険かと思って。

まぁ、無事帰ることができて良かったです。

今日はバンドリ7thライブ二日目RAISE A SUIREN。

体調を整えて行ってきます。

もっと目を労ろうぜ

今の自分がまさしくそうで、とにかく目の疲労感が半端ない。

特に40代の更年期になると、今までできていたことができなくなってくるのです。

でも働く時代はやっと折り返し地点なので(長い)、これからも目を使いたいというのであれば、もっと目をいたわって大切に使うべきです。

ということで、今回は目に大事にする方法を調べてみました。

○目に負担をかけないようにするために

  • メガネ、コンタクトを使用している人は、度があっているものを使用する
  • コンタクトを使用している人は、定期検診を必ず受ける
  • 暗いところでの読書やスマホ、PCの使用を控える
  • スマホ、PCの画面を暗くする
  • ブルーライトフィルター等を使用する
  • 定期的に休憩を入れる
  • 画面から目を離す

○目の疲れを感じたら

  • アイマスクなどを使用して目を休ませる
  • 目薬を使用する
  • 目の周りを温める
  • 目の周りをマッサージする
  • それでも目がつかれる場合は眼科を受診する

○目にいい食べ物

  • ビタミンB群(豚肉、レバー、鮭等)
  • アスタキサンチン(エビ、カニ、いくら等)
  • アントシアニン(ブルーベリー等)
  • ルテイン(ブロッコリー等)

目薬は、上記成分が入っているものを選ぶと良いです。

人生は長いので、普段から気をつけて生活しましょう。

【悲報】コンタクト終了のお知らせ

3月仕事復帰に向けていろいろ調整、準備しています。

整体に行って、首のこりや体のゆがみを直したり、

メガネを調整して貰ってたり、

肩こり対策グッズを探したり、と。

でもどうしても目が強烈に疲れる。

メガネをかけていても、コンタクトを付けていても。

これが目の疲れだ、と確定したのは、目の疲れに効く目薬を差したら症状が軽くなったため。

そこで、眼科に行ってきました。

度がずれているのなら新しくメガネとコンタクトを買い直さなくちゃいけないので。

で、診察してもらった結果。

どうやら、メガネをかけたまま近くの物を見ようとすると、目がピントを合わせようと頑張って疲れてしまう、という状況らしいです。

はい、老眼です。

今後の方針として、近くの物を見る用のメガネ(PC作業等の時に使用)と、遠くの物を見る用のメガネ(外出時に使用)の2つを用意して、状況に応じて使い分ける、というものでした。

そうすると、レンズの切り替えが自由にできないコンタクトは使用できなくなるのです。

いいかお前ら、いつまでもコンタクトで生活できると思うなよ。

ちなみにメガネが出来上がるのは今週の金曜日。

それまでほとんどPC作業はできません。

まぁ、仕事再開前に対策できて良かった。

死ぬかと思った。

発端は、

はい、午後9時頃急に胸のあたりがギューッて締め付けられるような感じがし、めちゃくちゃ心配になったので、このツイートをしました。

はい、#7119に電話しました。

看護師と電話で症状を話し、救急車を呼んでもらいました。

このまま病院に運ばれて入院かも?と思って泊まる準備万端で救急車を待ち、救急車が到着。

自分の足で救急車の乗り込み、その場で心電図と血圧と体温の検査を行いました。

そこで告げられたのが、

「病院に行く?救急担当の病院が遠いんだけど大丈夫?帰りタクシーになるよ?」

どうやらこのまま自宅に戻るという選択肢もあるらしい。

まぁ、お金がかかるので、この日は自宅に戻って次の日に病院に行きました。循環器科です。

レントゲンを撮った結果、診察結果は、

狭心症(の疑いが高い)

処方された薬を常に携帯しておき、また同じ症状が出たら、その薬を口の中で溶かして飲むらしい。

そうするとすぐに症状が治まると狭心症(確定)とのこと。

しかし、それだけでは終わりません。

レントゲンに、肺に曇っているところがある

とのこと。

紹介状書いてあげるから、呼吸器内科に行ってCTスキャンとって看てもらってきて、と言われました。

そして、今日、行ってきました。呼吸器内科。

診察結果

異常なし。

・・・と安心して帰りたかったのですが、

これだけでは終わりません

「アスベストを吸い込んだ形跡があるよ」

えー???

アスベストがあるような所行った覚えは無いけど?

ただ、そんなに深刻な状態では無かったようなので、

「埃っぽいところに行くときはマスクするように」

ということで、結局、呼吸器系は問題なしでした。

はぁ、疲れた。

Alexaで遊ぼう、時間になるとしゃべってくれるようにする

この機能って最初からあったっけ??

指定した時間になると自動的にAlexaさんが動くように指定することができます。

例えば、朝8時になるとその日のゴミを教えてくれるように設定する

あらかじめグーグルカレンダーにゴミのスケジュールを入力しておき、Alexaアプリからグーグルカレンダーに連携させる。

そして、朝8時になったらその日のスケジュールをしゃべるように設定する。

これが意外と便利。

ゴミの日スキルもありますが、それはいちいちAlexaに話しかけないと作動しないので、なにもしなくても知らせてくれるのは便利です。

時間になったら特定のメッセージを話すこともできます。

例えば、13時になったら薬を飲むようにしゃべってくれる、とかもできます。

とにもかくにも、Alexaさんから動いてくれるのが便利なんですよ!

工夫次第ではもっと便利な使用方法があるのかも!

Alexaさんで遊ぼう。ラジコでの再生について

よく、Alexaのradiko.jpアプリで

「ラジコで○○を再生しますか?」

と聞かれるの、なんとかしてくれ、「はい」って言っても聞き取ってくれない、

というレビューをよく目にしますが。

自分、気がつきました。

正しい放送局名を言わないと、Alexaさんは聞き返します。

例えば、

「アレクサ、STVを再生して」

では、Alexaさんは

「radikoでSTVラジオを再生しますか?」

と聞かれます。

しかし、

「アレクサ、STVラジオを再生して」

と言えば、すぐにradiko.jpでSTVラジオを流してくれます。

radikoで再生する場合は、放送局名を正式名称で呼びましょう。

Alexaさんで遊ぼう。フラッシュニュースを追加する。

Alexaさんには

「アレクサ、今日のニュースは?」

と話しかけると、フラッシュニュースを読み上げてくれます。

しかし、初期状態では、日テレニュース、NHKニュース、天気予報しか読み上げてくれません。

このフラッシュニュースにもスキルを追加して読み上げてくれるニュースを増やすことができます。

ニューススキルも沢山ありますが、中にはしょーもないようなニュースばかりのスキルもあるので、いろいろ試しながら都度カスタマイズして、自分好みのAlexa設定に調整する必要があります。

ニューススキル自体は本当に沢山あるので、いろいろ試して、自分好みに構築するのがいいですね。