您的位置:首页 > 其它

从FreeBSD源码中看到的东西

2014-08-26 11:54 162 查看
由于工作需要阅读FreeBSD的代码,在源码中看到了很多以前没接触过的c语言使用方法,觉得很有意思,记录于此。

1、奇怪的函数定义方式

正统写法:

<函数返回值类型> <函数名> ( <参数类型> <参数>...)

例子:

void func(int val, int data)

{

}

默认情况

函数返回值类型:这个如果不注明的话默认返回int类型,不过有些情况下可能会报错

参数类型+参数:这两个一起不写的话默认是void类型

参数类型:有参数,但不写参数类型,默认参数类型为int

真正特殊的来了

void func(val, data)

int *val;

char *data;

{

}

这种写法是完全正确的,它等同于

void func(int *val, char *data)

{

}

2、有意思的结构体赋值方式

比如这里有一个结构体是这样子定义的

struct class_one

{

int a;

int b;

int c;

};

正常的定义一个变量并赋值是这样的

struct class_one test = {10,100,100};

但其实还能这样定义

struct class_one test =

{

.a = 10,

.b = 100,

.c = 1000

};

很有意思吧,注意要在结构体成员前面加 “ . ”哦


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: