c++如何定义位变量

 我来答
萃桜c9
2012-03-12
知道答主
回答量:14
采纳率:0%
帮助的人:1.4万
展开全部
简单说:你要定义一个整形变量就是直接“类型 变量名;”就行。例如定一个叫做a的整形变量“int a;”详细说明: 在C++中,变量声明(declaration)只有在使用extern关键字时才成立,其他情况下都是定义(definition),而在使用extern的同时给变量赋初始值,则声明变为定义,extern关键字也将被编译器忽略。C++变量的作用域缺省情况下是全局的,也就是对多个源文件可见,比如说,如果在a.cpp和b.cpp中都有 int a;则编译器链接两个文件时会报告错误,“变量重复定义”。因此,要使变量定义只对该源文件可见,就要显式加上static关键字。因此,我们可以想到,如果在a.cpp中有 extern int a;而在b.cpp中有 static int a = 9;那么,编译器链接时会给出错误信息,“找不到a的定义”,因为a的定义在b.cpp并只对该文件可见,a.cpp找不到a的定义因此出错。 变量的声明和定义是比较容易混淆的概念,因此记住一点,除非有extern关键字,否则都是变量的定义。由此,我们可以归纳出几点好的程序设计风格: 1. 不要把变量定义放入.h文件,这样容易导致重复定义错误。 2. 尽量使用static关键字把变量定义限制于该源文件作用域内,除非该变量被设计成全局的。例外情况是const变量和typedef类型,在《The C++ Programming Language》9.2节中说到,const和typedef缺省作用域是局部的,因此不需要static来显式声明。因此,在.h文件中放置const变量定义不会产生问题,编译器会给每个引用该.h文件的源文件产生一份该const变量的局部定义,就像该变量是定义于该源文件中一样。大家也不用太担心编译器这么做会浪费空间,因为编译器优化过程一般会把有相同值的const变量进行合并。 对于static关键字,要多说几句的是,static一般有两种意思,当修饰函数定义里的变量或者类成员变量时,称作静态变量;修饰其他变量时,称作局部变量。为防止混淆,一般不要特意给局部变量加上static关键字。除了static关键字,namespace也可以使变量定义成为局部的。
tattackor
推荐于2017-09-15 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:868万
展开全部
1、变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

2、声明用于向程序表明变量的类型和名字,定义包括声明:当定义变量时声明了它的类型和名字。可以通过使用extern关键字声明变量名而不定义它。不定义变量的声明包括对象名、对象类型前的关键字extern。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝人poke
2012-03-12 · TA获得超过474个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:137万
展开全部
int a:10; //说明a是一个有10位的
char b:3; //b有3位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mail_zcw
推荐于2017-10-12 · TA获得超过336个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:197万
展开全部
int a=5
float b=12.254
char c="a"
str d="hello"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f03fa15
2015-09-18 · TA获得超过380个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:193万
展开全部
typedef struct {
    //byte 0
    unsigned char TYPE:5;
    unsigned char NRI:2; 
    unsigned char F:1;    
                       
} FU_INDICATOR; /**//* 1 BYTES */
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式