首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vc++ 一些常识2

2012-09-23 
vc++ 一些知识24、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”? (5分)答:C++语言支持函

vc++ 一些知识2
4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”? (5分)

答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为:

void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern“C”来解决名字匹配问题

五、编写strcpy函数(10分)

已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc);
{
    assert((strDest!=NULL) && (strSrc !=NULL)); // 2分
    char *address = strDest;                   // 2分
    while( (*strDest++ = * strSrc++) != ‘\0’ )    // 2分
       NULL ;
    return address ;                          // 2分
}
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了实现链式表达式。                                              // 2分
例如       int length = strlen( strcpy( strDest, “hello world”) );

http://blog.csdn.net/wangweitingaabbcc/article/details/6724685
http://blog.csdn.net/meimeng515/article/details/6902063
http://blog.csdn.net/Csdn_zc/article/details/6674621
C++的类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast

http://blog.csdn.net/hanlin1985/article/details/2990895

热点排行