当前位置:网站首页>AUTOSAR从入门到精通番外篇(八)-C语言常用技巧50个
AUTOSAR从入门到精通番外篇(八)-C语言常用技巧50个
2022-08-11 08:00:00 【格图洛书】
01. 宏定义用do{}while(0)
如果定义的宏函数后面有多条语句,使用这样的方式会有问题:
#define FUNC() func1(); func2() if(bRunF) FUNC();
展开宏定义后会变成:
if(bRunF) func1(); func2();
逻辑就不对了。可以用这一的方式解决,非常好用:
#define FUNC() do{func1(); func2();}while(0)
02. 数组的初始化
假如给arr的第2~6元素初始化为5,也许你会
int arr[10] = {0, 5, 5, 5, 5, 5, 0, 0, 0, 0};
现在告诉你C99可以这样:
int arr[10] = {[1... 5] = 5};
03. 数组的访问
你想取数组的第6个元素(下标为5),教科书教你这样做:
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int n1 = arr[5]; int n2 = *(arr+5);
其实你可以:
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int n = 5[arr];
也不会有错,实际上arr[5]对应*(arr+5)
,而5[arr]对应*(5+arr)
,没多大区别。
04. 结构体的初始化
结构体的初始化,传统的
边栏推荐
- Decrement operation in tf; tf.assign_sub()
- RestTemplate工具类
- 2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号 0 的弹簧处。若小球在编号为 i 的弹
- Hibernate 的 Session 缓存相关操作
- 【43. 字符串相乘】
- Square, multi-power, square root calculation in Tf
- Redis source code: how to view the Redis source code, the order of viewing the Redis source code, the sequence of the source code from the external data structure of Redis to the internal data structu
- C语言操作符详解
- 优炫数据库支持多列分区吗?
- 装饰器模式:Swift 实现
猜你喜欢
1076 Wifi Password (15 points)
2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号 0 的弹簧处。若小球在编号为 i 的弹
装饰器模式:Swift 实现
Hibernate 的 Session 缓存相关操作
IQUNIX A80 exploring TTC金粉 初体验
1056 Sum of Combinations (15 points)
分布式锁-Redission - 缓存一致性解决
查找最新人员工资和上上次人员工资的变动情况
1091 N-自守数 (15 分)
无服务器+域名也能搭建个人博客?真的,而且很快
随机推荐
2.1 - Gradient Descent
麒麟V10系统打包Qt免安装包程序
8、Mip-NeRF
4.1-支持向量机
囍楽cloud task source code
机器学习(一)数据的预处理
初级软件测试工程师笔试试题,你知道答案吗?
1003 I want to pass (20 points)
动态代理学习
1002 写出这个数 (20 分)
零基础SQL教程: 基础查询 05
装饰器模式:Swift 实现
2.1-梯度下降
Project 1 - PM2.5 Forecast
Interaction of Pico neo3 in Unity
2022-08-10 mysql/stonedb-slow SQL-Q16-time-consuming tracking
机器学习(三)多项式回归
C Primer Plus(6) 中文版 第1章 初识C语言 1.6 语言标准
1036 Programming with Obama (15 points)
兼容并蓄广纳百川,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang复合容器类型的声明和使用EP04