[迷信] 識別子に使える文字は英数字と下線のみ 公開日:2021年6月19日 C/C++迷信集プログラミング技術情報 多くのC言語やC++の入門書の最初のほうには、変数名や関数名などの識別子に使える文字として、アルファベットの大文字・小文字、数字、下線(アンダースコア、アンダーバー)だけが使えると書いています。確かに初期のC言語の規格は […] 続きを読む
[迷信] 引用符で囲んだヘッダ名はカレントディレクトリから探索する 公開日:2021年6月18日 C/C++迷信集プログラミング技術情報 あるディレクトリ(~/srcとします)に、foo.cとbar.hという二つのソースファイルがあったとします。bar.hは、foo.cから次のようにインクルードしています。 [crayon-676e1f599a2e8158 […] 続きを読む
[迷信] とりあえずmemsetで初期化 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 局所変数、特に集成体を宣言した後、実際に必要かどうかに関わらず、必ずmemset関数でゼロクリアする人は大勢います。しかし、そんなコードを見かけたら、それを書いた人のコードはすべて疑ってかかった方がよいかもしれません。 […] 続きを読む
[迷信] sizeofは定数式 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 C言語やC++のsizeof式は、オペランドの型情報を元にオペランドの評価結果のサイズをバイト数で返します。評価結果の値がどうなるかは関係ありません。C++の型には静的な型と動的な型(ポインタまたは参照が実際に指している […] 続きを読む
[迷信] scanfでキーボードから入力 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 これは迷信というより、本来は入門向けに難しい話をカットして説明するときの方便のようなものだったはずです。しかし、入門レベルのときはそれでよくても、入門者から次の段階に進む頃までその状況を引きずるべきではありません。また、 […] 続きを読む
[迷信] getsは単純にfgetsに置き換えられる 公開日:2021年6月13日 C/C++迷信集プログラミング技術情報 何かと悪名高いgets関数ですが、確かにバッファオーバーランを防げないなど、安全性に欠けるところがあります。そこで、これを何とかするために、gets関数を記述していた箇所を単純にfgets関数に置き換えればそれで問題が解 […] 続きを読む
[迷信] 文字列から整数への変換にはatoi 公開日:2021年6月12日 C/C++迷信集プログラミング技術情報 ごく普通のナル終端文字列”123″を整数値の123に変換するとき、あなたはどんな方法を用いるでしょうか? 学校の課題でもないかぎり、1文字ずつ取り出して数字かどうかを判別し、数字なら取り出した文字 […] 続きを読む
[迷信] 入力データ格納用配列のサイズはBUFSIZ 公開日:2021年6月11日 C/C++迷信集プログラミング技術情報 fgets関数などで一行分の文字列を読み込む場合など、サイズが分からないデータを格納するための配列の要素数はどのようにしているでしょうか? 実際に入力されるデータの長さは分からないまでも、プログラムが必要としている長さの […] 続きを読む
[迷信] 一重引用符の中には一文字しか書けない 公開日:2021年6月9日 C/C++迷信集プログラミング技術情報 一重引用符 ‘ で囲まれた文字定数または文字リテラルには、一文字しか書けないと考えている方が少なくないようです。例えば、’abc’のような書き方をすると、コンパイルエラーになるか未定義 […] 続きを読む
[迷信] データ列のソートにはqsort関数を使うべし 公開日:2021年6月9日 C/C++迷信集プログラミング技術情報 ソートのアルゴリズムにはいろいろありますが、中でもクイックソートは比較的高速なアルゴリズムです。その名前からも分かるように、qsort関数はクイックソートの実装であることを示唆しています。実際には、規格上はqsort関数 […] 続きを読む