正文

面试题心得2008-01-19 23:11:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wfxsky/32297.html

分享到:

面试题: 如何将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” 解决名字匹配的问题。

 

阅读(310) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册