1. ホーム
  2. c

[解決済み] Cの隠された特徴

2022-05-16 14:03:46

質問

すべての C コンパイラの実装の背後に標準があることは知っているので、隠された機能はないはずです。それにもかかわらず、私はすべての C 開発者が常に使用する隠し/秘密のトリックを持っていると確信しています。

どのように解決するのですか?

関数ポインタです。 関数ポインタのテーブルを使用して、例えば高速間接スレッドコードインタプリタ (FORTH) やバイトコードディスパッチャを実装したり、OOライクな仮想メソッドをシミュレートすることができます。

そして、qsort(),bsearch(), strpbrk(), strcspn() [後者2つは strtok() の代わりの実装に便利] など、標準ライブラリの隠れた名品があります。

C言語の誤った特徴として、符号付き算術オーバーフローは未定義動作(UB)であることが挙げられます。 したがって、x+yのような式を見るときはいつでも、両方とも符号付きintであり、それは潜在的にオーバーフローし、UBを引き起こすかもしれません。