为什么C语言也可以编译cout啊该如何解决
为什么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 "仅仅意味着“不要对此函数的名称进行重整”,至于函数的内容,没有任何限制。
#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 "仅仅意味着“不要对此函数的名称进行重整”,至于函数的内容,没有任何限制。