基礎知識 | 每日一練(178)
- 2019 年 11 月 26 日
- 筆記


基礎知識練習

士人有百折不回之真心,才有萬變不窮之妙用。立業建功,事事要從實地著腳,若少慕聲聞,便成偽果;講道修德,念念要從虛處立基,若稍計功效,便落塵情。 ——菜根譚


讀者:C++ 是C語言的超集嗎?可以用 C++ 編譯器來編譯C語言程式碼嗎?
小林:C++ 源自C語言, 而且大部分都建立在C語言的基礎上, 但是有一些合法的C程式碼在C++ 中不合法。相反的, ANSI C 繼承了 C++ 的幾個特性, 包括原型和常量, 所以這兩個語言並不是另一個的超集或子集;而且它們在一些通用構造的定義上也不同。儘管有這些不同, 許多 C 程式在 C++ 環境中編譯正確, 許多最新的編譯器同時提供 C 和 C++ 的編譯模式。但是, 把 C 程式碼當成 C++ 來編譯通常是個壞的。
注意; 兩個語言的差異普遍上足夠讓你得到不好的結果。
讀者:需要用到 「近似」 的 strcmp, 比較兩個字元串的近似度, 並不需要完全一樣。
小林:牽涉到 「soundex」 演算法, 它把發音相近的詞映射到同一個程式碼。它是為發現近似發音的名字而設計的, 但是它可以調整用於任意詞處理的服務。