C语言工程中 如何在工程中定义一个变量但只对本文件的所有函数生效而不影响工程中的其他子文件?

C语言工程中如何在工程中定义一个变量但只对本文件的所有函数生效而不影响工程中的其他子文件?比如说我建立了一个工程,里面包含的东西#include"k1.h"#includ... C语言工程中 如何在工程中定义一个变量但只对本文件的所有函数生效而不影响工程中的其他子文件?
比如说我建立了一个工程,里面包含的东西
#include "k1.h"
#include "k2.h"
我在k1中定义了一个全局变量a,令a 在k1这整个文件里面都可用
同时,在k2中也定义了一个全局变量a,但很明显程序会报错.
如何使k1中定义的全局变量a只对它这个文件生效而不对k2生效,从而使两个a都单独的对自己的整个文件生效?
换个名称这个方法就不用说了,不是这个方向
展开
 我来答
a773529106
2014-04-24 · TA获得超过298个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:299万
展开全部

首先这个全局的变量,肯定是不能放在头文件的;

你只需在全局变量前加static就能限制在本文件使用了, 函数也是

//示例:

//a.c
static int a = 200;
void fun(void)
{    
    printf("%s, %d\n", __FUNCTION__, a);
}
//b.c
static int a = 100;

extern void fun(void);

int main()
{
    printf("%s, %d\n", __FUNCTION__, a);
    fun();
    return 0;
}
追问
不行啊
这是我建立的工程的主文件Main.C
#include
#include "jk.h"
static int a=4;
int main()

{
printf("主函数: %d\n",a);
}
这是我建立的工程的子文件jk.h
#include
static int a=3;

void jk()
{
printf("jk函数: %d",a);
}

运行时程序仍然会报错
追答
"首先这个全局的变量,肯定是不能放在头文件的;" 

这句话应该说得很清楚了吧, 你放在头文件跟公开没有任何差别
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式