面试题: 如何将a。b的值进行交换,并且不使用任何中间变量? 用异或的方法比较好,不会发生溢出,如果采用 a= a+b; b= a-b; a= a-b; 这样做的缺点是如果a,b很大 可能溢出,而采用: a= a^b; b= a^b; a=a^b; 面试题2: 在c++程序中调用被c编译器编译的的函数,为什么要加extern“c”? 因为c++支持函数重载,c语言不支持函数重载,函数被c++编译后在库中的名字与c语言的不同,假设某个函数的原型是:void foo(int x,int y)。该函数被c编译器编译后在库中的名字为_foo,而c++的为_foo_int_int之类的名字。 c++提供了c连接交换指定符号extern“c” 解决名字匹配的问题。

评论