【纠结】全局变量啊!!!!!!

简介: 【纠结】全局变量啊!!!!!!

关于全局变量的定义和声明

 

全局变量:全局变量也称为外部变量,它是在函数外部定义的变量。    

它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。

只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。

但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。

昨天犯的错误是吧一个全局变量直接定义到一个头文件中然后把用到全局变量的cpp文件都包含头文件。。可连接Linking时出现错误

int side=4;
CTetrics.obj : error LNK2005: "struct tagPOINT Orign_L" (?Orign_L@@3UtagPOINT@@A) already defined in CPaint.obj
CWndFrame.obj : error LNK2005: "struct tagPOINT Orign_L" (?Orign_L@@3UtagPOINT@@A) already defined in CPaint.obj
Main.obj : error LNK2005: "struct tagPOINT Orign_L" (?Orign_L@@3UtagPOINT@@A) already defined in CPaint.obj
Debug/Tetrics.exe : fatal error LNK1169: one or more multiply defined symbols found

网上搜错误原因;重复定义错误。。想一下,是啊,在头文件里定义一个变量这就意味着。每当include一次头文件就要定义一个变量,当然是重定义了。。。

那#pragma once 行不行啊啊?》??验证答案是不行滴。。。。。

所以呢就要想出一种方法了,,

要不就在头文件中定义成static型的变量

要不就把变量定义到头文件外部,然后再头文件中extern下。。。。。


恩,实验发现第二种方法可用,可是第一种方法的问题就有了。。。

定义成static后在类操作里面却不能再对变量修改了...(这个问题不知为什么。。请大虾帮忙解决下啦......)


看到这我觉得有必要去研究下static了、。。。。

【剩下的研究完再说吧....】


相关文章
|
7月前
甚么!!你这麽传参是吧,好好
甚么!!你这麽传参是吧,好好
21 0
|
6月前
|
前端开发 程序员 PHP
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
110 0
写了个全局变量的bug,被同事们啪啪打脸
前阵子写了一个功能,测试 0 bug 就上线了,上线后也运行好好的,好多天都没有人反馈bug,超爽。。 不出问题还好,出问题就是大问题。。
|
自然语言处理 JavaScript
再谈JS闭包
作用域 作用域嵌套 词法作用域(lexicsl scope) 闭包 闭包示例
187 0
|
Java C++ Python
详解Python函数的作用域是干嘛的
Python是静态作用域语言,尽管它自身是一个动态语言。也就是说,在Python中变量的作用域是由它在源代码中的位置决定的,这与C有些相似,但是Python与C在作用域方面的差异还是非常明显的。
|
编译器 C++
<C++>搞明白构造函数和析构函数有这一篇就够了
<C++>搞明白构造函数和析构函数有这一篇就够了
1097 1
<C++>搞明白构造函数和析构函数有这一篇就够了
|
JavaScript 前端开发
学弟的一张图,让我重学了一遍函数声明和函数表达式!
首先我们要知道,当函数声明与变量命名冲突的时候,要保持着**函数声明优先的原则**
|
数据库
局部变量,全局变量怎么用合适?
局部变量,全局变量怎么用合适?
235 0
局部变量,全局变量怎么用合适?
|
自然语言处理 程序员
《代码大全》中的变量
《代码大全》中的变量
《代码大全》中的变量
|
JavaScript 程序员 C语言
能一眼看懂这些C语言函数,你就是天生的程序员!
喜欢这篇文章的朋友可以多多收藏、点赞、关注 一条龙~
1622 0