diff --git a/exercises/02_function/main.cpp b/exercises/02_function/main.cpp index 1de1c2a6..b5eef7f2 100644 --- a/exercises/02_function/main.cpp +++ b/exercises/02_function/main.cpp @@ -1,5 +1,9 @@ #include "../exercise.h" +// READ: 声明 +// NOTICE: cppreference 中的示例中指出了复杂声明的解读法,建议认真阅读。 +// NOTICE: 补充由内而外读法的机翻解释 + // TODO: 在这里声明函数 int main(int argc, char **argv) { diff --git a/exercises/03_argument¶meter/main.cpp b/exercises/03_argument¶meter/main.cpp index 764f12bd..7fb5d3c2 100644 --- a/exercises/03_argument¶meter/main.cpp +++ b/exercises/03_argument¶meter/main.cpp @@ -1,7 +1,8 @@ -// READ: - #include "../exercise.h" +// READ: +// THINK: 参数都有哪些传递方式?如何选择传递方式? + void func(int); // TODO: 为下列 ASSERT 填写正确的值 diff --git a/exercises/05_constexpr/main.cpp b/exercises/05_constexpr/main.cpp index 2180af38..d1db6c9d 100644 --- a/exercises/05_constexpr/main.cpp +++ b/exercises/05_constexpr/main.cpp @@ -17,6 +17,7 @@ int main(int argc, char **argv) { std::cout << "fibonacci(20) = " << FIB20 << std::endl; // TODO: 观察错误信息,修改一处,使代码编译运行 + // PS: 编译运行,但是不一定能算出结果…… constexpr auto ANS_N = 90; constexpr auto ANS = fibonacci(ANS_N); std::cout << "fibonacci(" << ANS_N << ") = " << ANS << std::endl; diff --git a/exercises/06_loop/main.cpp b/exercises/06_loop/main.cpp index 48371144..44fd835c 100644 --- a/exercises/06_loop/main.cpp +++ b/exercises/06_loop/main.cpp @@ -1,6 +1,8 @@ #include "../exercise.h" // TODO: 改正函数实现,实现正确的缓存优化斐波那契计算 +// THINk: 这个函数是一个纯函数(pure function)吗? +// READ: 纯函数 static unsigned long long fibonacci(int i) { // TODO: 为缓存设置正确的初始值 static unsigned long long cache[96], cached; diff --git a/exercises/07_enum&union/main.cpp b/exercises/07_enum&union/main.cpp index 1734fd93..3f2cec76 100644 --- a/exercises/07_enum&union/main.cpp +++ b/exercises/07_enum&union/main.cpp @@ -24,9 +24,12 @@ enum class Color : int { }; ColorEnum convert_by_pun(Color c) { + // READ: // `union` 表示在同一内存位置存储的不同类型的值。 // 其常见用法是实现类型双关转换,即将一种类型的值转换为另一种无关类型的值。 - // READ: + // 但这种写法实际上仅在 C 语言良定义,在 C++ 中是未定义行为。 + // 这是比较少见的 C++ 不与 C 保持兼容的特性。 + // READ: 类型双关 union TypePun { ColorEnum e; Color c;