当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 怎样用api实现 ......
 ·简单的分页问题——    »显示摘要«
    摘要: <tr> <form name="form1" method="get" action="more.asp?lanmu=<%=lanmu%>&page=<%=request("page")%>"> <td width="100%&quo......


大侠:是不是只要用extern "C" 声明,编译器就会以C风格编译

是不是只要用extern   "C"   声明,编译器就会以C风格编译?

NO.1   作者: aflyinghorse

extern   "C"用作C和C++的混合编程  
  如在C++中调用C的库函数,把C库函数的声明  
  用extern   "C"表示,这些函数就按C的方式编译,  
  不对函数名进行重整

NO.2   作者: yangsiqun

恩,楼上的很对,同意

NO.3   作者: zxszx

同意

NO.4   作者: davidwoo

就是这样

NO.5   作者: njtu

extern   "C"   用作C++中的C标记。  
   
  可以指定使用C方式编译,不过更多地用法是指明你要调用的函数是一个C函数;  
   
  #ifdef   __cplusplus  
  extern   "C"   void   myfunc(   void);  
  #endif

NO.6   作者: new1mm

ty

NO.7   作者: Meyer

yes

NO.8   作者: ttlb

回复人:   aflyinghorse()   (   )   信誉:100     2003-08-23   16:17:00     得分:0    
        extern   "C"用作C和C++的混合编程  
  如在C++中调用C的库函数,把C库函数的声明  
  用extern   "C"表示,这些函数就按C的方式编译,  
  不对函数名进行重整  
   
  请问什么是“函数名重整”?

NO.9   作者: grail0922

extern关键字是为了C++编译器与非C++代码进行连接而起作用的。  
  不同语言,或者同一语言的不同实现可能在以下几个方面存在差异:  
  1)使用寄存器保存差数的方式;  
  2)将参数放入堆栈的顺序;  
  3)整数或字符串等内部类型的布局;  
  4)编译器传替给连接器的名字;  
  5)对连接器所要求的地类型检查的量方面。  
  extern   "c"就是声明函数按照C的连接约定进行连接,并不影响调用函数的语义。仍然要遵守C++的类型检查和参数转换规则,而不是C的教弱的规则;  
  编译时,编译器会给C函数名前加上一个特定的前缀,和其他的C++函数名进行区别,这就是上面所谓的“函数名重整”  
   
  另外,这并不仅仅是适用于调用C库函数,对自定义库函数和其他自定义C函数都是可以得。  
   
  暂时说这么多,如果解答的不好请大家见谅。

NO.10   作者: hsyouxishe

我同意aflyinghorse

NO.11   作者: violetblue

好像是这样的  
  因为在c里没有函数名重用一说,就是不允许函数名相同的多个函数出现,所以像下面的函数  
  void     Fun(int   i)  
  c里编译成Fun,而c++里编译成Fun_int  
  可能不太确切,不过大致是这个意思。


    摘要: 为什么要搞 managed c++ ?是進步還是退步? 看這個magaged的名字就不舒服 請大家談談为什么要managed ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE