将 C 函数声明为extern “C””(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:
函数的定义可类似如下所示:
注意,声明里使用的可是 C++ 的类型规则,而不是 C 的哦。所以调用声明为 extern “C”” 的函数时,传递的参数个数必须正确。例如:
相关文章:
- C 中调用 C++ 函数
- 将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:...
- 弄清C++在幕后为你所写、所调用的函数
- 一个空类什么时候不是空类? ---- 当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:...
- 构造函数深入讲解
- 类似这样的问题千奇百怪。例如: 1.为什么我明明不想复制对象,而编译器却偏偏这么做了呢? 2.如何关闭复制机制? 3.如何防止隐式转换? 4.为何 int 自动转换成了复数?...
- 什 么是纯虚函数
- 纯虚函数是指不必在基类中定义,但必须在派生类中被覆盖(override)的函数。通过新奇的“=0”语法可将虚函数声明为纯虚函数。例如:...
- 析构函数里对指针成员调用delete
- 大多数情况下,执行动态内存分配的的类都在构造函数里用new分配内存,然后在析构函数里用delete释放内存。最初写这个类的时候当然不难做,你会记得最后对在所有构造函数里分配了内存的所有成员使用delete。...
- 在函数重载和设定参数缺省值间慎重选择
- 一个最多可以计算五个int的最大值的函数。这个函数使用了——深呼一口气,看清楚啦——std::numeric_limits::min(),作为缺省参数值。等会儿再进一步介绍这个值,这里先给出函数的代码:...
- 如果不想使用隐式生成的函数就要显式地禁止它
- 假设想写一个类模板Array,它所生成的类除了可以进行上下限检查外,其它行为和C++标准数组一样。设计中面临的一个问题是怎么禁止掉Array对象之间的赋值操作,因为对标准C++数组来说赋值是不合法的:...
- 明智地使用内联
- 明智地使用内联,也就是在函数体并不大的时候选择用内联,如是函数体很大选 用内联,并不会变快,有可能会更慢...
- 为何标准容器效率如此低下
- 不,它们的效率并不低下。或许“和什么比较?”会是一个更有用的回答。当人们抱怨标准库容器的性能时,通常会是以下三个现实问题之一:...
- 为何 C++ 里有些东西是未定义的
- 因为机器的不同以及 C 里面也有很多未定义的东西。ISO C++ 标准里有以下术语的详细定义:“未定义”、“未指明(unspecified)”、“由实现定义”,以及“合乎语法的(well-formed)”。注意,这些术语的含义和 ISO C 标准里的定义不太相同,而且也和它们常见的用法不同。假若没有察觉到不同的人对这些术语的认识会有所偏差,讨论问题的时候常常会极度混乱。...