[迷信] ‘A’~’Z’の値は連続している 公開日:2021年5月31日 C/C++迷信集プログラミング技術情報 今回はソースコードから見ていくことにしましょう。 [crayon-673ed1d9e0d49783086537/] やろうとしていることは簡単です。標準入力から1文字読み込み、アルファベットの大文字であれば小文字に変換し […] 続きを読む
[迷信] 1バイトは8ビット 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 最近の大多数のコンピュータは、アドレスを8ビットごとに振っています。また、ASCIIコードが7ビットということもあり、それに符号ビットを付加した8ビットが文字データの単位として扱われています。 そういった事情もあってか、 […] 続きを読む
[迷信] 0xe-0xeはゼロ 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 今回はかなり難しい話です。まずは、次のコードをご覧ください。 [crayon-673ed1d9e0fcd560926989/] このプログラムをコンパイルし実行すると、出力されるのは”A”でしょう […] 続きを読む
[迷信] double の出力書式は”%lf” 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 この迷信ないしは事実誤認はあまりにも根が深く、あまりにも多くのプログラマが間違いを犯し続けていました。遂には標準規格の方が折れて、迷信を追認することになったという”暗い歴史”があります。 prin […] 続きを読む
[迷信] 今どきint型が16ビットの処理系なんて無い 更新日:2021年6月6日 公開日:2021年5月29日 C/C++迷信集プログラミング技術情報 C言語やC++の代表的な整数型はint型です。このint型が16ビット以上であることはよく知られています。正確には、その表現範囲が少なくとも-32767~+32767ということになります(-32768~ではない点に注意) […] 続きを読む
int型やfloat型をひっくるめて何というか? 公開日:2021年5月29日 プログラミング技術情報 タイトル通りのことがときどき話題になります。ささいなことなのですが、C言語やその派生言語でプログラミングしている方々に役に立つかも知れませんので書き留めておきます。 これについては、C言語の標準規格で明確に定義されていま […] 続きを読む
使ってはならないのは「goto」ではない 公開日:2021年5月29日 プログラミング技術情報 「goto禁止」を謳うコーディング規約は少なくありません。理由を尋ねると、おおむね返ってくる答えは同じで「gotoを使うとスパゲッティプログラムになるから」ということのようです。私は最近でも「goto」を使ったプログラム […] 続きを読む
意外に知られていない && と || の短絡評価 公開日:2021年5月28日 プログラミング技術情報 以前学生から聞いた話なのですが、C言語やC++やC#などを一通り学んでいても、意外に&&や||といった演算子の短絡評価を知らないそうです。 その当時、ちょっと入門サイトをいくつか調べてみましたが、確か […] 続きを読む
new[ ] で確保した配列の要素数を取得する方法? 公開日:2021年5月28日 プログラミング技術情報象の卵を探して…… これを実現するには、operator new[]とoperator delete[]を定義しなおす必要があります。以下に具体例を示します。 [crayon-673ed1d9e10e8769286064/] 実際にはこれ以 […] 続きを読む
_Pragma演算子を使ってみた。 公開日:2021年5月27日 プログラミング技術情報 以前から存在は知っていたけれど、使ったことがないものというのは少なからずあります。私にとって、_Pragma演算子もそのひとつでした。 _Pragma演算子というのはC99で導入された前処理演算子で、C++でもC++11 […] 続きを読む