全局变量声明-一个工程在有多源文件情况下如何声明全局变量?

问题描述

一个工程在有多源文件情况下如何声明全局变量?
我做了一个程序,有点大,因此我把好几个函数分开写在几个.cpp文件中(第一次这么做)。有些变量在几个.cpp文件中都要用到,我又不想用参数传递的方法做。请问要怎样声明全局变量才好?是不是在.h文件中声明就行了?

解决方案

在f1.cpp定义全局变量: int a=10;
在f2.cpp开头声明: extern int a; //声明使用的是外部全局变量,使用f1中的a
如果f3.cpp中也有一个全局变量,但是只是在f3中使用,可以定义: static int a;

解决方案二:
是不是用static?

时间: 2024-11-10 00:32:40

全局变量声明-一个工程在有多源文件情况下如何声明全局变量?的相关文章

c#-C#中如何声明一个自定义类型的全局变量

问题描述 C#中如何声明一个自定义类型的全局变量 项目中添加一个Person.cs类文件定义了一个Person类想声明一个Person类型的全局变量应该如何做? 解决方案 在某个类中,声明 public static Person person

c++-我在头文件里声明一个变量,然后在Cpp里赋值,怎么不行呢?

问题描述 我在头文件里声明一个变量,然后在Cpp里赋值,怎么不行呢? 我的mfc程序里自定义了一个头文件,里面声明一个变量比如 int a和声明一个函数Init(): 然后自定义一个cpp,里面实现函数Init().在函数体里面给a赋值:a=6: 然后在另一个dialog cpp里TRACE这个值试试,结果说: fatal error LNK1169: 找到一个或多个多重定义的符号,已经在...obj中定义过.反正编辑时不报错,编译链接时报错.怎么回事? 我有很多变量,我希望有一个Init函数,

Go语言声明一个多行字符串的变量_Golang

Go如何声明一个多行字符串的变量?使用 ` 来包含即可. package main import ( "fmt" ) func main() { str := `hello world v2.0` fmt.Println(str) } Demo:http://play.golang.org/p/BOL8_SwQ0D 以上所述就是本文的全部内容了,希望大家能够喜欢. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索

vc6.0如何在工程内调用另一个工程

问题描述 vc6.0如何在工程内调用另一个工程 就是说我有两个独立的工程,一个是系统界面软件,一个是接收数据的软件.我想要在系统界面中点击一个按钮打开接收数据的软件,并且在接收完成后再系统界面上显示下载完成.看到网上虽然可以在系统界面软件按钮处用Winexec或者ShellExecuteEx打开接收软件进行接收,但是不知道接收软件要怎么在下载完成后给系统界面一个返回值,用来执行显示下载完成,要在系统界面显示下载完成.还有一个办法就是合并,不过不知道具体怎么操作,是把Source Files,He

Spring中基于aop命名空间的AOP 二(声明一个切面、切入点和通知)

2.声明一个切面 在基于AOP命名空间的Spring AOP中,要声明一个切面,需要使用<aop:config/>的子标签 <aop:aspect>.<aop:aspect>标签有一个ref属性必须被赋值,它用于指定和该切面关联的 受管Bean(backing bean,以后我们都将使用Backing Bean来称呼这样的Bean).正如下例所示,该Bean 对应的java类是一个普通的java类,在该类中定义了切面的通知方法.此外,<aop:aspect>

javascript-js如何预声明一个jquery对象?

问题描述 js如何预声明一个jquery对象? 我用var $obj = {}声明,后期执行会报错$obj.animate is not a function,请问如何声明一个 jquery的对象? 解决方案 jquery对象并不意味着你引入了jquery的js以及你使用了其中代表jquery的符号$符号作为变量名的开头,这跟jquery一点关系都没有,jquery一般会提供我们一些根据他的规则获取的元素对象,比如:使用jquery获取一个input元素对象,并将其赋值给一个变量,那么,这个变量

mondodb-C#声明一个mongodb地理位置索引,并修改索引范围

问题描述 C#声明一个mongodb地理位置索引,并修改索引范围 默认情况下,mongodb地理空间索引假定你在索引经度/维度,并且这些值的范围是[-180180].但是我的坐标是大地坐标,不是经纬度,怎么在C#声明一个mongodb地理位置索引,并修改索引范围?shell是这样修改的:db.places.ensureIndex( { loc : ""2d"" } { min : -500 max : 500 } ) 解决方案 这里有现成的http://blog.c

从零开始学_JavaScript_系列(17)——dojo(6)(声明一个类declare)

(71)声明一个类declare 作用: 封装一个类,然后可以通过调用这个类,来调用其类方法.   优点: ①可以继承其他类的类方法:   ②假如我们需要使用一个类的类方法,而这个类依赖于5个插件.如果正常调用的话,我们需要在每个使用这个类的js文件里,调用这5个插件.当我们使用封装时,我们只需要调用这个类即可.而调用这个类的方法很简单.   ③可以使得代码模块化,按需加载.例如,我有封装好的A类B类C类,起初我用的是A类(假设A类依赖于20个插件),然后我可能弃用A类改用B类(B类使用与A类不

初学者求教,C++中在类内声明一个struct和另一个类,在类外怎么定义

问题描述 初学者求教,C++中在类内声明一个struct和另一个类,在类外怎么定义 template class List{ struct Node{}; ... class const_iterator{}; class iterator:public const_iterator{}; ... }; struct Node{ Object data; ... }; 这样定义出现了错误,但不知如何解决.并且模板Object在struct Node为何无法使用? 解决方案 类中定义一个stati