转载自:http://blog.csdn.net/longronglin/article/details/1323550
C语言的extern用法,其中还包括了全局变量的测试:extern是对外的一个引用。
pubVar.h
int
gUserId;
firstFile.cpp
/************************************************************
Copyright (C), 1998-2006, Rx. Co., Ltd.
FileName: example.cpp
Author: longronglin
Version : 1.0
Date: 2006-10-06
Description:
Function List:
1. int main()
2. int VarTest()
History:
<author> <time> <version > <desc>
longronglin 2006/10/06 1.0 modify xxx .
***********************************************************/
#include < stdio.h >
#include " pubVar.h "
extern int getUserId();
/*
* 返回1为正确执行
* 操作符测试过程
*
*/
int gVarTest()
{
printf("the init UserId is %d ", gUserId);
gUserId = 12;
printf("the UserId is %d ", gUserId);
return (1);
}
/*
* 返回1为正确执行
* 主函数
*
*/
int main()
{
gVarTest();
getUserId();
printf("the UserId is %d ", gUserId);
return (1);
}
Copyright (C), 1998-2006, Rx. Co., Ltd.
FileName: example.cpp
Author: longronglin
Version : 1.0
Date: 2006-10-06
Description:
Function List:
1. int main()
2. int VarTest()
History:
<author> <time> <version > <desc>
longronglin 2006/10/06 1.0 modify xxx .
***********************************************************/
#include < stdio.h >
#include " pubVar.h "
extern int getUserId();
/*
* 返回1为正确执行
* 操作符测试过程
*
*/
int gVarTest()
{
printf("the init UserId is %d ", gUserId);
gUserId = 12;
printf("the UserId is %d ", gUserId);
return (1);
}
/*
* 返回1为正确执行
* 主函数
*
*/
int main()
{
gVarTest();
getUserId();
printf("the UserId is %d ", gUserId);
return (1);
}
secondFile.cpp
#include
<
stdio.h
>
#include " pubVar.h "
int getUserId()
{
printf("getUserId is %d ", gUserId);
return (1);
}
int i = 10 ;
#include " pubVar.h "
int getUserId()
{
printf("getUserId is %d ", gUserId);
return (1);
}
C语言的extern用法-变量:
1 example.cpp
/************************************************************
Copyright (C), 1998-2006, Rx. Co., Ltd.
FileName: example.cpp
Author: longronglin
Version : 1.0
Date: 2006-10-06
Description:
Function List:
1. int main()
2. int VarTest()
History:
<author> <time> <version > <desc>
longronglin 2006/10/06 1.0 modify xxx .
***********************************************************/
#include < stdio.h >
/*
* 返回1为正确执行
* 操作符测试过程
*
*/
extern int i;
// 下面的语句是不合法的,因为确实有定义。所以屏蔽了
// i = 20;
// 如果写成下面的编译通过。但不是我们想要的。大家可以试一下。结果不会变为13!
// extern int i = 13;
extern int j = 12 ;
/*
* 返回1为正确执行
* 主函数
*
*/
int main()
{
printf("i = %d ", i);
printf("j = %d ", j);
return (1);
}
Copyright (C), 1998-2006, Rx. Co., Ltd.
FileName: example.cpp
Author: longronglin
Version : 1.0
Date: 2006-10-06
Description:
Function List:
1. int main()
2. int VarTest()
History:
<author> <time> <version > <desc>
longronglin 2006/10/06 1.0 modify xxx .
***********************************************************/
#include < stdio.h >
/*
* 返回1为正确执行
* 操作符测试过程
*
*/
extern int i;
// 下面的语句是不合法的,因为确实有定义。所以屏蔽了
// i = 20;
// 如果写成下面的编译通过。但不是我们想要的。大家可以试一下。结果不会变为13!
// extern int i = 13;
extern int j = 12 ;
/*
* 返回1为正确执行
* 主函数
*
*/
int main()
{
printf("i = %d ", i);
printf("j = %d ", j);
return (1);
}
2 secondFile.cpp
int i = 10 ;