![]() |
1
113
语言允许:
如果Fo.H包含了需要C++链接的东西呢?
|
![]() |
2
32
没有真正的理由使用
注意C++标准在句法上定义。
|
![]() |
3
22
我不知道你为什么要这么做,但根据 this Sun文章,可以使用外部“C++”在一个外部的“C”块中指定一组“C”函数中的某些函数具有本机C++链接。
|
![]() |
4
6
两种猜测:
阅读
this answer
这就解释了
|
![]() |
6
2
C和C++使用不同 name mangling rules . 本质上,ExtEnter“C”告诉C++编译器以C命名的函数命名函数。 |
![]() |
7
1
这将指定要使用的链接约定。大多数语言都知道如何与“C”风格的函数链接。 在两种情况下需要此选项:
例子:
现在链接工作了,因为它使用C约定。 |
![]() |
8
1
我使用extern“C”的第一个原因是为了避免C++的名称混乱规则。如果您使用的是.Net语言,并且希望将PInvoke转换为特定的本机函数,那么这一点非常重要。唯一的方法是禁用名称损坏。 |
![]() |
9
0
要回答第二个问题,“它实用吗?”:
在标准头文件中,如
|
![]() |
10
-1
简单的回答是,您可以使用extern C告诉编译器不要使用名称混乱。这意味着你可以把C和C++代码的位链接到同一个项目中。 |
![]() |
11
-2
至于Exc++“C++”,我从未见过它在真实的代码中,尽管C++标准允许。我想这是不可能的。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |