#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++ 的函数了。