加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
skill_code.c 930 Bytes
一键复制 编辑 原始数据 按行查看 历史
sunshine 提交于 2020-04-14 22:27 . 存储备份
//记录linux的各种骚操作代码
#define min(x, y) ({ \
typeof(x) _min1 = (x); \
typeof(y) _min2 = (y); \
(void) (&_min1 == &_min2); \
_min1 < _min2 ? _min1 : _min2; \
})
/*
*其中第四行代码是为了在用户传入不同类型的变量进行比较时给出警告,前面的(void)又是为了让编译器忽略后面代码的结果
*个人理解上面的宏{}里面的内容相当于一个函数,在函数内部完成一系列操作后,通过()得到返回值
*例:
#define ret_sub(x) ({\
typeof(tmp) = 5;\
x - tmp;\
})
*/
int tmp_array[] = {[1 ... 3] = 5,[4 ... 6] = 7};
/*
*上面代码的意思是将数组1到3的元素初始化为5,4到6的元素初始化为7,注意中间的空格不能少
*/
int n;
switch(n)
{
/*写法1*/
case 1 ... 3:
break;
/*写法2*/
case 1:
case 2:
case 3:
break;
}
/*
*上面两种写法都可以将1到3的分支归为一种情况
*/
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化