从中我们可以得出 __init 是告知编译器,将变量或函数放在一个特殊的区域,
这个区域定义在vmlinux.lds中。__init 将函数放在代码段的一个子段
".init.text"(初始化代码段)中,__initdata将数据放在数据段的子段
".init.data"(初始化数据段)中。标记_init的函数,表明该函数在使用
一次后就会被丢掉,讲占用的内存释放
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__FILE__:在源文件中插入当前源文件路径及文件名;
__LINE__:在源代码中插入当前源代码行号;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__FUNCTION__:可以用于程序错误时打印错误位置
printk("%s %s line %d\n", __FILE__, __FUNCTION__, __LINE__)
struct 结构体名{
结构体所包含的变量或数组
};
例子:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};
,