Linux中数组与结构体的快捷初始化
2012-05-26 14:59
218 查看
Linux中数组与结构体的快捷初始化
最近看了linux内核的一点代码,感受颇深,现在就把数组和结构体初始化的部分简单的记录一下。那么怎么快捷方便的对数组和结构体进行初始化呢?
一、数组快捷初始化
我们使用的方法有这么几种:
或者
果如数组到长度是128或者更大呢?对于方法二还是可以接受的,若使用方法一把数组初始化成指定内容该怎么办?用循环?有其他方法吗?还有其他方法吗?那么我们就来说一下:
对,你们没有看错,就是这样,简单吧!有兴趣到朋友可以做个简单到例子。
二、结构体的初始化
我们用以下结构体为例子:
我们平常到初始化是这个样子的:
或者
对于第二种方法,有没有更方便到呢?当然有,如下:
这种方法我们都可以调换初始化的顺序,如下:
三、结构体数组的初始化
数组到快捷初始化,结构体到初始化都了解了,那么结构体数组到初始化呢?就是以上两种方法到组合。感兴趣的朋友可以自己写个小例子,这里我就不说了,免的大家嫌我罗嗦。
四、扩展阅读
想想是否还有类似于其他的呢?有的,看下面的例子。
这样,我们就可以很方便的判断小于0大于9的数了,哈哈,超级方便。
本文出自 “小菜_默” 博客,请务必保留此出处http://riverdream.blog.51cto.com/1559152/879043
最近看了linux内核的一点代码,感受颇深,现在就把数组和结构体初始化的部分简单的记录一下。那么怎么快捷方便的对数组和结构体进行初始化呢?
一、数组快捷初始化
我们使用的方法有这么几种:
int an_temp[10] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; //初始化成指定数据到数组
或者
int an_temp[10]; memset(an_temp,0,sizeof(int)*10); //数组清零
果如数组到长度是128或者更大呢?对于方法二还是可以接受的,若使用方法一把数组初始化成指定内容该怎么办?用循环?有其他方法吗?还有其他方法吗?那么我们就来说一下:
int an_temp[128] = {[0 ... 127] = -1};
对,你们没有看错,就是这样,简单吧!有兴趣到朋友可以做个简单到例子。
#include <stdio.h> int main() { int an_temp[128] = {[0 ... 127] = -2}; int i = 0; for(i=0;i<128;i++) printf("%d\n",an_temp[i]); return 0; }
二、结构体的初始化
我们用以下结构体为例子:
struct struct_temp { int dd; int cc[128]; };
我们平常到初始化是这个样子的:
struct struct_temp st_temp; memset(&struct_temp,0,sizeof(struct struct_temp));
或者
struct struct_temp st_temp; st_temp.dd = -1; int i =0; for(i=0;i<128;i++) st_temp.cc[i] = -1;
对于第二种方法,有没有更方便到呢?当然有,如下:
struct struct_temp st_temp = {.dd=-1, .cc[0 ... 127] = -2};
这种方法我们都可以调换初始化的顺序,如下:
struct struct_temp st_temp = {.cc[0 ... 127] = -2, .dd=-1};
三、结构体数组的初始化
数组到快捷初始化,结构体到初始化都了解了,那么结构体数组到初始化呢?就是以上两种方法到组合。感兴趣的朋友可以自己写个小例子,这里我就不说了,免的大家嫌我罗嗦。
四、扩展阅读
想想是否还有类似于其他的呢?有的,看下面的例子。
int dd = 1; switch(dd) { case 0 ... 9: printf("case:%d\n",dd); break; default: printf("default:5d\n",dd); }
这样,我们就可以很方便的判断小于0大于9的数了,哈哈,超级方便。
本文出自 “小菜_默” 博客,请务必保留此出处http://riverdream.blog.51cto.com/1559152/879043
相关文章推荐
- Linux中数组与结构体的快捷初始化
- 一个题目,涉及结构体数组的初始化与输出
- 数组,结构体初始化 {0} (转载)
- 爬爬爬之路:结构体的初始化及结构体数组的初始化
- C编译器剖析_4.4 语义检查_外部声明_结构体和数组的初始化
- 关于包含0长数组的结构体对齐问题(C语言 Linux_x64 GNU编译器)
- 数组,结构体初始化 {0}
- Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析
- Linux C中数组,结构体的指定初始化(乱序初始化)
- 数组常量 常量数组 结构体数组初始化 对象数组
- 结构体数组初始化三种方法,转载
- 从Linux的ext2文件系统源码学到一种初始化结构体的新方法
- day07 结构体 匿名结构体 结构体的初始化 访问 结构体嵌套 结构体的存储空间 结构体数组
- C++程序设计语言练习5.7 结构体数组的初始化
- 数组,结构体初始化 {0} (转载)
- 关于数组结构体的初始化
- 关于数组、结构体的初始化
- Linux学习-结构体数组和结构体指针
- Linux2.6 内核中结构体初始化(转载)
- 结构体数组的初始化