我需要在C++中引用C中定义的全局变量,建立Win32 Console Application工程,工程中包含的三个文件的源代码如下:
/*c语言头文件:cExample.h*/
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
extern int a;
extern int b;
extern int x;
extern void add();
#endif
/*c语言实现文件:cExample.c*/
#include "cExample.h"
int a=1;
int b=2;
int x=0;
void add()
{
x=a+b;
}
/*c++实现文件:cppFile.cpp*/
#include <stdio.h>
extern "C"
{
#include "cExample.h"
}
void main()
{
void add();//调用cExample.c中的add函数
printf("x=%d\n",x);//引用c语言中定义的全局变量x
}
程序的运行结果是x=0,请问这是为什么?
在C++中调用add函数后,全局变量x应该被赋值为3呀!
求教在C与C++混合编程时,应该如何引用全局变量在两种语言间传递数值?