サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
kumikomiya.com
2018年1月4日2020年4月15日 C++ には const というキーワードがあります。さほど難しい概念でもないし、一度覚えてしまえば、逆に使わないことが気持ち悪くなるぐらい、不可欠なものです。料理でいえば、何かを切ったら包丁を拭くことと同じようなもので、プロにしてみれば、当たり前すぎて意識にも上らないような動作の一つでしょう。 ですが、私が今まで見てきたところでは、仕事で C や C++ を書いている人のうち、少なく見積もっても90%の人は、const を使いません。ですから、もしあなたが初心者だとして、このキーワードを使いこなせるようになれば、その時点で上位10%のプログラマーに食い込めることになります。さらに言うと、その使い方を覚えるのに、1時間もかかりません。 6つの意味 const キーワードは、一言でいうと、修飾する対象が不変であることを示すものです。ただし、その対象とな
Code Jam、TopCoder、AtCoder といったプログラミングコンテストの世界では、主要なプログラミング言語から好きなものを選んで戦うことができますが、ほとんどの参加者が選ぶのは C++ か Java のどちらかで、この二つが全体の90%ほどを占めています。C# を使っている人を見かけることはほとんどなく、参加者の割合でいうと5%にも満たないほどです。 C# は戦えない言語なのでしょうか? 今までコンテストで C# を使い続けてきた私の経験から言うと、そんなことはありません。 遅さは否めない コンテストで C++ や Java が好まれる最大の理由は、その速度です。その点 C# がどうかというと、やはり少し遅いことは認めざるを得ません。C++ のおよそ10倍遅いというのが目安です。 10倍という数字にはインパクトがあるかもしれませんが、コンテストでこれが致命的になることは滅多に
本当は 0x11 になるべきところが、0x10 への変化が塗りつぶされ、0x01 になってしまいました。これも、滅多に起きないからこそ恐ろしいバグの一つです。 弱者の義務 あるタスクから見て値が絶えず動いているということは、それは自身より優先度の高いタスクによって書き換えられているか、ペリフェラルのレジスタであるかのどちらかです。 ここに一つのポイントがあります。アトミック性を意識しなければならないのは、常に割り込まれる側、つまり弱者の側であるということです。今あなたの書いているコードが強者の側なら、これに対して打てる手はありません。 対策 アトミック問題の対策については、問題領域によって取るべき手段が異なるため、とてもここに書き切れるものではありませんが、比較的単純なものをここでご紹介します。 二度読み 値を単に抜き取るだけなら、この対策が最もシンプルです。二度読みとは、厳密には「二連続
2017年12月27日2020年1月17日 Pimpl イディオムと呼ばれるテクニックがあります。イディオムとは「慣用句」とか「言い回し」といった意味の単語で、要するにパターンのことです。 正直に言うと、私はこのテクニックが嫌いです。どうやってもソースコードを汚すことになるし、その犠牲によって得られる恩恵が大したものに思えない。特に組み込みでは。 しかし最近、これをうまく使っている人を見て、少しだけ考えを改めました。もしあなたがライブラリを提供する立場で、そのファイル構成をシンプルにして提供したいと思うのであれば、Pimpl イディオムを局所的に使うことには一考の余地があります。 メリットとされていること Pimpl とは “Pointer to Implementation"、つまり「実装へのポインタ」から来ているプログラミング用語です。一度 “Pimpl" をググってみてください。大抵
このページを最初にブックマークしてみませんか?
『Tonteki Developer's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く