C++全局变量的声明与定义

1. header1.h中声明全局变量,header1.cpp中定义全局变量

// header1.h
#ifndef HEADER1_H_
#define HEADER1_H_

extern int g_n;// 头文件中必须加extern声明全局变量,不赋值
//int g_o;错误
//int g_o = 10;错误
//extern int g_o;错误

#endif

 

// header1.cpp
#include "header1.h"

int g_n = 100;// 定义时绝对不能再加extern了,不给g_n赋值则自动赋值0
//int g_n;// 也正确, g_n为0

2. header2.hpp中声明定义全局变量

// header2.hpp
#ifndef HEADER2_HPP_
#define HEADER2_HPP_

int g_m = 1;// 正确,在hpp文件中定义了全局变量
//int g_m;// 正确,自动初始化为0
//extern int g_m = 1;// 正确

//extern int g_m;// 错误,这只是声明没有定义,需要在某个cpp文件中int g_m = ?;补上定义才正确

#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值