社区
C语言
帖子详情
extern "C"是什么意思?!
wjc
2001-08-14 11:17:50
...全文
132
11
打赏
收藏
extern "C"是什么意思?!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hollysky
2001-08-20
打赏
举报
回复
推荐你看一本书《Thinking in C++》
heavyrain1234
2001-08-15
打赏
举报
回复
那这个程序在标准c里 他不是会出错?
liu_feng_fly
2001-08-15
打赏
举报
回复
c语言并不支持重载呀
WQ
2001-08-15
打赏
举报
回复
主要是命名归范不同
gigix
2001-08-14
打赏
举报
回复
同意wanghu。因为C++有函数重载机制,因此编译器必须对C++的函数名做一些处理,使同名函数成为异名函数。但经过这样的函数名重整之后,别的语言便无法知道这个函数在编译目标文件中实际的名字,也就无法调用。因此在不同语言合作时,必须用extern "C"禁止编译器对函数名进行重整,保证目标文件中的函数名与源代码中的函数名一致。
wanghu
2001-08-14
打赏
举报
回复
extern c 阻止编译程序改变你的程序中的这个函数的名称。
zh9625
2001-08-14
打赏
举报
回复
extern "C"
可把C++程序编译为C接口,用于其他语言调用本模块。
我曾写了个一个win32动态库,就有extern "C",编译后可被VB程序调用
MountLion
2001-08-14
打赏
举报
回复
extern "C"
{
// 表示扩号中的内容是C语言格式的,不是C++
}
liu_feng_fly
2001-08-14
打赏
举报
回复
是的
wjc
2001-08-14
打赏
举报
回复
那是否就是说:用extern "C" 就不支持重载?
tankingau
2001-08-14
打赏
举报
回复
同意gigix.
先看一个例子:
int func(int x, float y);
int func(int x, char * str);
C++编译器采用名字粉碎技术,将上述两个函数的名字解析成类似于(VC、BC各有不同):
i_func_i_f
i_func_i_c
的形式。
有时,为了避免这种名字粉碎技术带来的弊病(比如DLL调用),声明为
extern "c"就阻止编译进行名字粉碎,而按照传统的C标准进行编译。
C语言中的
extern
关键字详细讲述
Extern
_C,讲述
extern
的用法,和要注意的事项
C语言
extern
使用方法总结.doc
C语言
extern
使用方法总结,简单总结,请指教!
《C深度解析》第7、8章 结构体/共用体/枚举,杂项(自动类型转换、大小端序等)
第7章: 1. 结构体 结构体定义、访问、传参,结构体对齐(offsetof宏... 枚举 第8章: 自动类型转换、大小端序、typedef、编译器优化、
extern
"C"、程序调试、变参函数、do{}while(0)、内嵌汇编、调试版与发行版、断言
C语言中
extern
关键字详解.docx
C语言中
extern
关键字详解.docx ,C语言中
extern
关键字详解.docx
浅析
extern
“C”的作用
关于
extern
“C”的作用和意思,网上资料已经有很多了(我也参考了几篇),不过我还是觉得有必要自己总结一下,毕竟“好记性不如烂笔头”嘛~~
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章