[迷信] 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-6770a8c964814013328293/] やろうとしていることは簡単です。標準入力から1文字読み込み、アルファベットの大文字であれば小文字に変換し […] 続きを読む
[迷信] 1バイトは8ビット 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 最近の大多数のコンピュータは、アドレスを8ビットごとに振っています。また、ASCIIコードが7ビットということもあり、それに符号ビットを付加した8ビットが文字データの単位として扱われています。 そういった事情もあってか、 […] 続きを読む
[迷信] 0xe-0xeはゼロ 公開日:2021年5月30日 C/C++迷信集プログラミング技術情報 今回はかなり難しい話です。まずは、次のコードをご覧ください。 [crayon-6770a8c964b62703495396/] このプログラムをコンパイルし実行すると、出力されるのは”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言語の標準規格で明確に定義されていま […] 続きを読む
new[ ] で確保した配列の要素数を取得する方法? 公開日:2021年5月28日 プログラミング技術情報象の卵を探して…… これを実現するには、operator new[]とoperator delete[]を定義しなおす必要があります。以下に具体例を示します。 [crayon-6770a8c964c85728498117/] 実際にはこれ以 […] 続きを読む
_Pragma演算子を使ってみた。 公開日:2021年5月27日 プログラミング技術情報 以前から存在は知っていたけれど、使ったことがないものというのは少なからずあります。私にとって、_Pragma演算子もそのひとつでした。 _Pragma演算子というのはC99で導入された前処理演算子で、C++でもC++11 […] 続きを読む