博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C++】C++中变量的声明与定义的区别
阅读量:4476 次
发布时间:2019-06-08

本文共 1150 字,大约阅读时间需要 3 分钟。

声明(declaration):意味着告诉编译器关于变量名称、变量类型、变量大小、函数名称、结构名称、大小等等信息,并且在声明阶段不会给变量分配任何的内存。

定义(definition):定义就是在变量声明后,给它分配上内存。可以看成“定义 = 声明 + 内存分配”。

例如:

#include 
using namespace std;int addtion(int a,int b);//声明struct product{unsigned int weight;double price;};//声明int main(){cout << "addtion is " << addtion(6,8) << endl;product apple,orange;//定义return 0;}//定义int addtion(int a,int b){return a+b;}

上面的案例中,

int addtion(int a,int b);struct product{unsigned int weight;double price;};

上面是声明,它们只是告诉编译器有这个东西,并不会分配内存。

product apple,orange;int addtion(int a,int b){
return a+b;}

上面是定义,给他们会被分配内存。

声明和定义还有一种常见的,就是extern修饰的变量。当使用extern关键字修饰变量(未初始化),表示变量声明。当在另一个文件中,为extern关键字修饰的变量赋值时,表示变量定义。
例如:
header.h

#ifndef HEADER_H#define HEADER_H//定义global_x变量 ,在任何包含了该文件的文件中都可以使用global_x变量int global_x = 20;#endif

file.h

#include 
#include "header.h"extern int global_x;//声明 global_x 变量int main(){std::cout << "global_x = " << global_x << std::endl;return 0;}

file.h文件声明了global_x变量,但是globar_x变量的定义是在header.h文件中。

 

用 g++ file.h -o file 命令编译后会得到可执行文件(file),再用命令 ./file 运行file文件。

结果如下:

global_x = 20;

 

转载于:https://www.cnblogs.com/HDK2016/p/10236702.html

你可能感兴趣的文章
JS常用函数与方法
查看>>
十、Shell基础
查看>>
py16 面向对象深入
查看>>
CentOS 7 安装 Gitlab
查看>>
JavaScript-03-常见函数
查看>>
ajax 设置Access-Control-Allow-Origin实现跨域访问
查看>>
去掉ExpandableListView的箭头图标
查看>>
[LeetCode]Binary Tree Level Order Traversal II
查看>>
跨页面传值自动刷新 操作文本与文件夹
查看>>
最完美的毁尸灭迹:皮箱连环弃尸案始末
查看>>
002
查看>>
WCF服务“*”有零个应用程序(非基础结构)终结点。这可能是因为未找到应用程序的配置文件,或者在配置文件中未找到与服务名称匹配的服务元素,或者服务元素中未定义终结点。...
查看>>
cocos2d 读书随笔《cocos2d-x游戏开发技术精讲》
查看>>
Asterisk 代码架构概述
查看>>
中兴电信光纤猫F450获取管理员密码方法
查看>>
申请TexturePacker 或 PhysicsEditor free licenses
查看>>
kafka启动报错&问题解决
查看>>
nginx反向代理下没有获取到正确的clientIP问题发散
查看>>
python周报第一周
查看>>
IBM MQ 创建以及常见问题集锦
查看>>