读书人

为什么C语言也可以编译cout啊该如何解

发布时间: 2012-03-04 11:13:34 作者: rapoo

为什么C语言也可以编译cout啊
#include <iostream>
using namespace std;
extern "C " void cf(char c)
{
cout < < "C compiler " < <endl;
cout < <__FUNCTION__ < <endl;//如何获得编译器生成的函数名呢
}

extern "C++ " void cppf(char c)
{
cout < < "C++ compiler " < <endl;
cout < <__FUNCTION__ < <endl;
}

int main( )
{
char c= 'a ';
cf(c);
cppf(c);
system( "pause ");
}

[解决办法]
extern “C”和C语言代码是2个完全不同的概念。
[解决办法]
extern "C " 只是告诉编译器不做名字重整,也就是说 extern "C "的函数不能重载
[解决办法]
每个函数都有一个内部函数名,extern “C”的意思是告诉编译器,请按照C的方式来生成内部函数名。
[解决办法]
那里表示你这是C语言了?
你肯定是用C++编译器编译的上述文件。
extern "C "仅仅意味着“不要对此函数的名称进行重整”,至于函数的内容,没有任何限制。

读书人网 >C++

热点推荐