我熟悉用"C“语言编写宏的条件编译,但有些代码让我感到困惑,我可以理解代码-1的工作原理,没有任何东西分配给X,因此Y被定义为5(其他条件),在打印Y时,我们将得到5作为输出。但是在CODE-2中,它非常类似于CODE-1,除了"#if X == A"条件,它将输出作为3,我不明白它如何能像3 .Can那样产生输出。"#if X == 3""#if X == A"`#else
在“谷歌风格指南”( 其他C++特性、引用参数 of C++ Style Guide )中,我读到,不可使用非const引用。
通过引用传递的所有参数必须标记为const。显然,查看使用引用作为参数的函数调用对C程序员来说是绝对令人困惑的,但是C和C++现在是不同的语言。如果需要输出参数,则使用所需输出参数的指针可能导致跳过整个函数体,从而使函数的实现更加复杂(形式上增加了函数的圈复杂度和深度)。我希望使C++代码尽可能容易理解