基础知识 | 每日一练(178)

  • 2019 年 11 月 26 日
  • 笔记

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

读者:C++ 是C语言的超集吗?可以用 C++ 编译器来编译C语言代码吗?

小林:C++ 源自C语言, 而且大部分都建立在C语言的基础上, 但是有一些合法的C代码在C++ 中不合法。相反的, ANSI C 继承了 C++ 的几个特性, 包括原型和常量, 所以这两个语言并不是另一个的超集或子集;而且它们在一些通用构造的定义上也不同。尽管有这些不同, 许多 C 程序在 C++ 环境中编译正确, 许多最新的编译器同时提供 C 和 C++ 的编译模式。但是, 把 C 代码当成 C++ 来编译通常是个坏的。

注意; 两个语言的差异普遍上足够让你得到不好的结果。

读者:需要用到 “近似” 的 strcmp, 比较两个字符串的近似度, 并不需要完全一样。

小林:牵涉到 “soundex” 算法, 它把发音相近的词映射到同一个代码。它是为发现近似发音的名字而设计的, 但是它可以调整用于任意词处理的服务。