为什么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 "仅仅意味着“不要对此函数的名称进行重整”,至于函数的内容,没有任何限制。