随笔
1. printf函数在计算参数时是从右向左进行计算的。
2. 编程风格: if ( 'A' == a ) 要比 if ( a == 'A' )好 在将==写成= 时候比较有效。
3. a 和 b实现交换的方法:
方法1: a = a + b;
b = a - b;
a = a - b; 不足之处在于如果a,b都很大时,a+b的值容易溢出。
方法2: a = a ^ b;
b = a ^ b;
a = a ^ b;
4. 在C++程序中调用被C编译器编译后的函数,为什么要加extern "C"?
答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字和C语言的不同。假设某个函数的原型为void foo(int x, int y),该函数被C编译器编译之后在库中的名字为_foo,而C++则会产生_foo_int_int之类的名字。
C++提供C连接交换指定符号extern "C"解决名字匹配问题。