C++基础之全局变量
来源:互联网 发布:qq三国js奥义选择 编辑:程序博客网 时间:2024/05/22 15:22
C++的水比较深,之前我一直以为C++的全局变量会像其他语言一样,非常简单只要在头文件中,定义一个变量即可,比如下面的test.h:
#ifndef _TEST_H#define _TEST_Hint a = 10;#endif
我都加上头文件保护符,总应该没有多重包含的问题了吧?没想到多个cpp文件引用同个头文件还是狂报错:error LNK2005 a 已经在 xx.obj中定义。
又拿起《C++ Primer》看了下,发现正确的应该这么写:
test.h
#ifndef _TEST_H#define _TEST_Hextern int a;#endif
test.cpp
#include "test.h"int a = 10;
原来:头文件用于声明而不是用于定义!定义只可以出现一次,而声明则可以出现多次。
extern int a = 10;//初始化了值,是定义double b; //没有extern关键词,是定义
对于头文件不应该包含定义这一规则,有3个例外。头文件可以定义类,值在编译时就已知道的const对象和inline函数。
C++基础之全局变量
3 0
- C++基础之全局变量
- c基础 堆栈 全局变量 局部变量 const
- C语言之局部变量和全局变量
- 浅析C/C++作用域之全局变量
- 嵌入式C编程经验 之 全局变量
- C全局变量
- [C++]全局变量
- C面试基础题-全局变量,静态变量,局部变量(1)
- C语言基础-局部变量和全局变量的区别
- C语言基础-------全局变量、局部变量、静态全局变量、静态局部变量的区别
- 【Python基础】之全局变量(UnboundLocalError: local variable referenced before assignment)
- Python新手学习基础之函数-全局变量和局部变量
- Python新手学习基础之函数-全局变量和局部变量
- C程序编译之函数调用与全局变量
- 补习C语言之在.h文件中定义全局变量
- 嵌入式C编程经验 之 全局变量猛于虎
- 嵌入式C编程经验之全局变量猛于虎
- C语言温习笔记之局部变量与全局变量
- 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
- 基于TestNG 与Selenium 的自动化测试设计与实施
- linux问题总结
- c语言中的转义字符
- smarty 定界符与js冲突的问题
- C++基础之全局变量
- Maven常用命令
- 关于perl中的反勾号(``),system和exec
- NO.3读书笔记第二则。理解argc,argv
- Oracle聚簇索引的使用方式
- 正则表达式匹配标点符号
- 双向链表
- 正大种子魔术子弹或假索赔
- 解决html跨站问题