C语言全局变量咋在多文件工程中声明,并且能在多个文件中使用它?

比如说,一个工程有1.c/2.c/3.c
在1.c中声明了一个i的全局变量,怎么样才能使i在2.c和3.c中使用,前提是不用形参

extern 关键字
extern int i;这样就可以在其他文件中使用
在头文件中声明
a.h
extern int i;
在其他某个c文件中定义
int i =0;
其他要使用i变量的c源文件只需要include"a.h"就可以
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-29
在1.c中定义全局变量int i;
在2.c和3.c中都用extern int i;声明一下就可以使用了追问

用不用在头文件里声明?

追答

不需要的,直接在c文件中这样写就可以用

本回答被提问者采纳
第2个回答  2014-06-29
使用外部变量申明:extern
格式为:extern int i;

C语言全局变量咋在多文件工程中声明,并且能在多个文件中使用它?
int i =0;其他要使用i变量的c源文件只需要include"a.h"就可以

C语言中怎样在头文件中定义一个能够在所有文件中都可以使用的全局数组...
C语言可以通过在.c文件中定义,头文件中extern的方式实现一个能够在所有文件中都可以使用的全局数组变量。具体做法如下:设有一个多项目文件有 1.c、2.c和3.c三个源程序文件;如果有一个全局数组需要所有文件使用,那么可以添加一个data.c文件,在其中添加全局数组的定义;向项目中添加data.h文件,在...

单片机Keil C51 C语言多文件如何使用全局位变量?跪拜!!
extern就可以。在一个文件里定义:bdata m;sbit x=m^1;然后在另一个文件里声明:extern bdata m;(如果不使用m可以不声明。)extern bit x;这样就可以使用了。如果变量较多,建议楼上的方法,用全局头文件。

怎么定义全局变量,全部类可以使用
用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类。这个类主要进行程序的初始化,生成文档、视图对象等工作。我们可以把需要全局访问的变量和函数定义为这个类的成员变量和成员函数,就可以实现全局访问了。从严格意义上讲,这种变量和函数并不是全局的,因为它仍然只是类中的成员,只是由于我...

全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么
1、关于全局变量能否在头文件中声明的问题,答案是可以的。2、在不同的C文件中各自用static声明的全局变量,变量名尽管可能相同,但是各自C文件中的全局变量的作用域为该文件,所以互相之间不干扰。3、对于在头文件中定义static 变量的问题。包含该头文件的所有c文件都定义了一个该文件的全局变量。更详细...

c语言中如何声明一个全局变量,在两个.c文件中使用
在test.c中直接使用printf()打印的,那如果正常应该怎么去声明一个全局变量在两个文件中使用,并且这两个.c文件是两个线程,也就是说main.c中的全局a变量会直接影响到test.c,test.c中一直在检查a的值,满足条件则运行相应的功能,说具体点,谢谢~~~我就接着这里回答了啊~~~如果是两个线程同时...

编写多个cpp文件时,不是不能重复定义吗,那为什么像#inlude<iostream>可 ...
C语言,包括C++中不允许重复定义的。在包含文件(*h,也就是头文件)中使用了条件编译宏来防止重复定义。例如,假设一个项目中有三个文件:my.h s1.cpp s2.cpp 且s1.cpp和s2.cpp都使用了#include "my.h"。为了防止重复定义,在my.h中使用了以下宏 ifndef __MYH \/\/如果__MY符号没有定...

全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么
头文件里用static定义全局变量,然后被不同的.c包含,其实际效果相当于在这些不同的.c文件里各自定义自己的static全局变量,所以虽然变量名相同,但这些变量是独立的。static修饰的全局变量只在其所在的编译文件范围内有效。引用static的全局变量的方法跟其他变量的引用方法一样,不管是.h还是.c,没什么...

关于C语言中变量在两个.C文件中的调用问题
方案1:在一个文件中定义全局变量“类型 tmp;”,注意是全局变量。另一个文件全局变量的位置使用“extend 类型 tmp;”。方案2:把hal.c文件里的函数参数加一个指向tmp的指针,tmp在main中,在hal.c里的文件使用tmp时,把地址传过去就行了。例如:mian(){ char tmp;...} function(&tmp;...;.....

C语言怎样定义和声明全局变量和函数最好?
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。定义是分配空间并赋初值(如果有) 的声明。最好的安排是在某个相关的.c 文件中定义, 然后在头文件(.h) 中进行外部声明, 在需要使用的时候, 只要包含对应的头文件即可。定义变量的.c 文件...

相似回答