📄 extern c_usage.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0034)http://www.7622.com/list/49060.htm -->
<HTML><HEAD><TITLE>extern "C"的用法</TITLE>
<META content="extern " name=keywords "C"的用法? C?的用法,extern>
<META content="2005-8-10 23:47:34" name=CreatTime>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="extern C的用法.files/style.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY><A name=#top></A>
<TABLE class=border cellSpacing=6 cellPadding=0 width=778 border=0>
<TBODY>
<TR>
<TD class=logoBackground align=middle width=101></TD>
<TD vAlign=top width=659>
<TABLE height=31 cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR vAlign=top>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/1_1.htm">Delphi</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/2_1.htm">Visual
C++</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/3_1.htm">游戏开发</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/4_1.htm">数据库开发</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/5_1.htm">其他开发语言</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/6_1.htm">ASP</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/7_1.htm">其他</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TR>
<TD height=6><SPACE height="6"></TD></TR>
<TR>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/8_1.htm">网站制作技术</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/9_1.htm">Visual
Basic</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/10_1.htm">Java</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/11_1.htm">Javascript</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/12_1.htm">文件格式</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/13_1.htm">Perl</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD>
<TD>
<TABLE class=navDark cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD align=middle><A class=navLink
href="http://www.7622.com/dir/14_1.htm">.NET</A></TD></TR></TBODY></TABLE></TD>
<TD width=6><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=border cellSpacing=0 cellPadding=0 width=778 border=0>
<TBODY>
<TR>
<TD align=middle height=10>
<TABLE class=pageSeparator cellSpacing=6 cellPadding=0 width=766
border=0><TBODY>
<TR>
<TD height=10><SPAN class=location>您的位置: <A
href="http://www.7622.com/">首页</A> > <A
href="http://www.7622.com/dir/5_1.htm">其他开发语言</A> > extern
"C"的用法</SPAN></TD>
<SCRIPT src="extern C的用法.files/id.htm"></SCRIPT>
</TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=border cellSpacing=6 cellPadding=0 width=778 border=0>
<TBODY>
<TR>
<TD class=pagelighter vAlign=top width=540>
<TABLE class=listtitle cellSpacing=0 cellPadding=1 width="100%"
border=0><TBODY>
<TR>
<TD>
<TABLE class=pageSubject cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD class=content><STRONG>extern
"C"的用法</STRONG></TD></TR></TBODY></TABLE>
<TABLE class=docParameter cellSpacing=6 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD>
<P>作者: marinezdz 时间: 2005-4-15 17:35:54 浏览: 1<BR>来自: <A
href="http://www.7622.com/list/target=_blank"></A><BR>关键词:
extern "C"的用法<BR></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=border cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD><IMG height=6 src="extern C的用法.files/spacer.gif"
width=6></TD></TR></TBODY></TABLE>
<TABLE class=pageLighter cellSpacing=11 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD class=content style="WORD-BREAK: break-all">链接指示符extern
C<BR>如果程序员希望调用其他程序设计语言尤其是C
写的函数那么调用函数时必须<BR>告诉编译器使用不同的要求例如当这样的函数被调用时函数名或参数排列的顺序可能<BR>不同无论是C++函数调用它还是用其他语言写的函数调用它<BR>程序员用链接指示符linkage
directive 告诉编译器该函数是用其他的程序设计语言<BR>编写的链接指示符有两种形式既可以是单一语句single
statement 形式也可以是复<BR>合语句compound statement 形式<BR>//
单一语句形式的链接指示符<BR>extern "C" void exit(int);<BR>//
复合语句形式的链接指示符<BR>extern "C" {<BR>int printf( const char* ...
);<BR>int scanf( const char* ... );<BR>}<BR>//
复合语句形式的链接指示符<BR>extern "C" {<BR>#include
<cmath><BR>}<BR>链接指示符的第一种形式由关键字extern
后跟一个字符串常量以及一个普通的函数<BR>声明构成虽然函数是用另外一种语言编写的但调用它仍然需要类型检查例如编译器<BR>会检查传递给函数exit()的实参的类型是否是int
或者能够隐式地转换成int
型<BR>多个函数声明可以用花括号包含在链接指示符复合语句中这是链接指示符的第二种形<BR>式花招号被用作分割符表示链接指示符应用在哪些声明上在其他意义上该花括号被忽<BR>略所以在花括号中声明的函数名对外是可见的就好像函数是在复合语句外声明的一样<BR>例如在前面的例子中复合语句extern
"C"表示函数printf()和scanf()是在C
语言中写的<BR>函数因此这个声明的意义就如同printf()和scanf()是在extern
"C"复合语句外面声明的<BR>一样<BR>当复合语句链接指示符的括号中含有#include
时在头文件中的函数声明都被假定是用<BR>链接指示符的程序设计语言所写的在前面的例子中在头文件<cmath>中声明的函数都是C<BR>函数<BR>链接指示符不能出现在函数体中下列代码段将会导致编译错误<BR>int
main()<BR>{<BR>// 错误: 链接指示符不能出现在函数内<BR>extern "C" double sqrt(
double );<BR>305 第七章函数<BR>double getValue(); //ok<BR>double result =
sqrt ( getValue() );<BR>//...<BR>return
0;<BR>}<BR>如果把链接指示符移到函数体外程序编译将无错误<BR>extern "C" double sqrt( double
);<BR>int main()<BR>{<BR>double getValue(); //ok<BR>double result =
sqrt ( getValue() );<BR>//...<BR>return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -