C++函数标准头

#ifndef __INCvxWorksh
#define __INCvxWorksh
#ifdef __cplusplus
extern "C" {
#endif
/*...*/
#ifdef __cplusplus
}
#endif
#endif /* __INCvxWorksh */
#ifndef __INCvxWorksh
#define __INCvxWorksh

编译宏的作用是为了防止重复引用。C++支持函数重载。C作为过程语言并不支持函数重载。这是因为编译后C和C++的名字不同。假设某函数为void foo(int ,int)

C编译后为_foo,C++编译后为_foo_int_int,C++ 就是靠这个机制来实现重载的。为了实现C和C++的混合编程。C++提供了C++ 链接交换制定符号extern"C"来解决名字匹配问题。函数声明钱加上extern"C"后

编译器就会按照C 语言的方式进行编译_foo,这样C语言就可以调用C++ 的函数了。

猜你喜欢

转载自blog.csdn.net/shantf93/article/details/79767458
今日推荐