现在的位置: 首页 > 综合 > 正文

指针、枚举、数组、typedef、内联函数、define、extern、static变量

2013年09月30日 ⁄ 综合 ⁄ 共 1397字 ⁄ 字号 评论关闭

Volatile的使用

类型修正符(type-modifier),限定一个对象可被外部进程(操作系统、硬件或并发进程等)改变。volatile与变量连用,可以让变量被不同的线程访问和修改。声明时语法:
int volatile vInt;
常用于像中断处理程序之类的异步进程进行内存单元访问。
除了基本类型外,对用户定义类型也可以用volatile类型进行修饰。
注意:可以把一个非volatile int赋给volatile int,但是不能把非volatile对象赋给一个volatile对象。示例:
volatile int i=3;

int j;

j=i;

cout<<j<<endl;

枚举

枚举类型的定义中列举出所有可能的取值,被说di明为该枚举类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

枚举的定义枚举类型定义的一般形式为: 

enum 枚举名枚举值表 }; 

在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

enum weekday{ sun,mou,tue,wed,thu,fri,sat }; 

enum weekday a,b,c; 

#include <iostream>

#include <string>

using namespace std;

int main()  

{  

enum weekday{mon,tuesday,wednesday,thursday,friday,saturday,sunday};

    enum weekday t=mon;

cout<<t<<endl;

getchar();

} Answer:0;

当我们要使用同一种类型的聚集数时,采用枚举

enum open_modes{ input,output,append }; 默认第一个值时0,后面的值逐次加一。

枚举类型对象的初始化或赋值,只能通过其枚举成员来进行。

enum open_status{input,output,appedn};

open_status a;

a=output;

cout<<a<<endl;

open_status b;

b=3; //编译不通过,因为b时enum类型,不能用常量来初始化

union的使用

#include <stdio.h>
union
{
    int i;
    char c[2];
}A;
void main()
{
    A.c[0]=10;
    A.c[1]=1;
    printf("%d", A.i);
}

输出结果是0x0000010A=266  

引申:通过这道题的方法,我们可以判断CPU是小端格式还是大端格式!

c++union的使用,看高手们如何解释的 

union主要是共享内存,分配内存以其最大的结构或对象为大小,即sizeof最大的。在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 1”),我们也可以使用联合体来发挥其长处。一下转载自网站:

C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 1”),我们也
可以使用联合体来发挥其长处

抱歉!评论已关闭.