码迷,mamicode.com
首页 > 编程语言 > 详细

C语言学习笔记--enum和sizeof关键字

时间:2016-09-22 23:54:15      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

1.enum关键字

C语言中enum关键字用来定义枚举类型

1enum C 语言中的一种自定义类型
2enum 值是可以根据需要自定义的的整型值
(3)第一个定义的 enum 值默认为 0

(4)默认情况下的 enum 值是在前一个定义值的基础上加 1

(5)enum 类型的变量只能取定义时的离散值

enum Color
{
    GREEN, //默认 GREEN==0;
    RED= 2, //自定义 RED==2;
    BLUE //默认情况,是在前一个的基础上加 1,即 BLUE==3
};
enumColor c =GREEN;//定义 c 变量,并初始化为 GREEN
printf("%d\n",c);

enum 中定义的值是 C 语言中真正意义上的常量 。在工程中 enum 多用于定义整型常量

#include <stdio.h>
enum //无名枚举,用于定义常量
{
    ARRAY_SIZE = 10 //定义数组大小,ARRAY_SIZE 是常量,运行时无
法改变
};
enum Color
{
    RED = 0x00FF0000,
    GREEN = 0x0000FF00,
    BLUE = 0x000000FF //注意,后面没分号
};
//打印,参数为枚举类型
void PrintColor(enum Color c)
{
    switch( c )
    {
        case RED:
            printf("Color: RED (0x%08X)\n", c);
            break;
        case GREEN:
            printf("Color: GREEN (0x%08X)\n", c);
            break;
        case BLUE:
            printf("Color: BLUE(0x%08X)\n", c);
            break;
    }
}
//初始化数据
void InitArray(int array[])
{
    int i = 0;
    for(i=0; i<ARRAY_SIZE; i++)
    {
        array[i] = i + 1;
    }
}
void PrintArray(int array[])
{
    int i = 0;for(i=0; i<ARRAY_SIZE; i++)
    {
        printf("%d\n", array[i]);
    }
}
int main()
{
    enum Color c = GREEN; //定义变量 c 并初始化为 GREEN
    int array[ARRAY_SIZE] = {0};
    PrintColor(c);
    InitArray(array);
    PrintArray(array);
    return 0;
}

2.C语言中的sizeof关键字

1sizeof 是编译器的内置指示符
2sizeof 用于计算类型或变量所占的内存大小

3sizeof 的值在编译期就己经确定,在编译过程中所有的 sizeof 将被具体的数值所替换 ,程序的执行过程与 sizeof 没有任何关系 。

#include <stdio.h>
int f()
{
    printf("I like programming!\n");
    return 0;
}
int main()
{
    int var = 0;
    int size = sizeof(var++); //该行在编译期被替换为 int size =4;
    //所以运行时,不存在 var++之类的代码了
    printf("var = %d, size = %d\n", var, size);
    size = sizeof(f()); //该行在编译期被替换为 size = sizeof(函数的返回值类型) =4;
    //即最终代码没有 f()函数的调用,也就不会输出 f()里面的 printf
    printf("size = %d\n", size);
    return 0;
}

 

 

 

C语言学习笔记--enum和sizeof关键字

标签:

原文地址:http://www.cnblogs.com/CoderTian/p/5898324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!