[迷信] コンパイラはプログラマの心を察してくれる 公開日:2021年6月2日 C/C++迷信集プログラミング技術情報 これを迷信集に入れるべきかどうか迷ったのですが、口にこそ出さないものの、実際にこのように信じているとしか考えられないプログラマが少なからず存在することは事実です。彼らは、あたかもブロークンな英語のように、正しい文法で書こ […] 続きを読む
[迷信] argv[0]はプログラム名 更新日:2021年6月15日 公開日:2021年6月2日 C/C++迷信集プログラミング技術情報 main関数がargcとargvの2つの仮引数を受け取る場合、argv[0]がプログラム名を表す文字列を指すというのは入門書にも載っています。しかし、常にそうかというと、実はそうではありません。今回はフリースタンディング […] 続きを読む
[迷信] absは常に非負の値を返す 公開日:2021年6月1日 C/C++迷信集プログラミング技術情報 abs関数というのは絶対値を求める関数です。C言語ではint型の引数を受け取りint型の値を返します。C++では、int版以外に、long版、float版、double版、long double版、std::comple […] 続きを読む
[迷信] ‘A’~’Z’の値は連続している 公開日:2021年5月31日 C/C++迷信集プログラミング技術情報 今回はソースコードから見ていくことにしましょう。 [crayon-67411840ab892812539646/] やろうとしていることは簡単です。標準入力から1文字読み込み、アルファベットの大文字であれば小文字に変換し […] 続きを読む
[迷信] 1バイトは8ビット 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 最近の大多数のコンピュータは、アドレスを8ビットごとに振っています。また、ASCIIコードが7ビットということもあり、それに符号ビットを付加した8ビットが文字データの単位として扱われています。 そういった事情もあってか、 […] 続きを読む
[迷信] 0xe-0xeはゼロ 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 今回はかなり難しい話です。まずは、次のコードをご覧ください。 [crayon-67411840abc09227170765/] このプログラムをコンパイルし実行すると、出力されるのは”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」を使ったプログラム […] 続きを読む