底层软件开发学习(1)

    底层软件开发小白(励志在底层领域有所建树,养家糊口同时望能为国家贡献一份力)记录工作过程中自己不懂的相关知识,一来可以加强自己的记忆提高自己,二来希望能给相关的底层开发同仁一点帮助。如有错误的地方帮忙指出,谢谢。

现在刚接触项目,只能遇到不会的地方记录下来,没有逻辑关系,等一段时间再统一整理。

1 static inline函数

头文件中常见static inline,用于定义函数

引入内联函数的目的是为了解决程序中函数调用的效率问题,内联函数用于函数体小,引用频繁的函数放到头文件中,节省调用函数时需要的保护现场和恢复现场,用空间换时间。

2. static修饰变量和函数

A.c源文件中

char a = 'A'; // global variable
void msg() 
{
    printf("Hello\n"); 
}

main.c源文件中

int main(void)
{    
    extern char a;    // extern variable must be declared before use
    printf("%c ", a);
    (void)msg();
    return 0;
}

运行结果:A Hello

所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问——访问方法(1)在一个头文件中说明,要使用这些函数的源文件要包含这个头文件(2)在其他使用这个全局函数的源文件中,用extern先声明这个函数再使用。

而对于内部函数应该在当前源文件中说明和定义。使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。

对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用:

(1) 保持变量内容的持久,只初始化一次

(2)默认初始化为0,字符默认初始化为'\0'

局部变量按照存储形式来分,分为auto,static,register
首先从内存

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汽车底层软件开发是指在汽车电子产品中负责开发和设计底层软件的工作。底层软件是指与硬件紧密结合的软件,它负责控制和管理汽车的各种功能和系统,如引擎控制单元(ECU)、车身控制模块(BCM)等。底层软件开发需要掌握嵌入式系统开发的相关知识和技能。 在学习汽车底层软件开发时,可以参考以下几本书籍: 1. 《汽车电子产品软硬件协同开发与应用》:这本书介绍了汽车电子产品的软硬件协同开发过程和方法,对于理解软硬件之间的关系和协同开发的重要性很有帮助。\[2\] 2. 《汽车软件构架》:这本书由汽车软件设计和架构实践者撰写,介绍了汽车软件的设计原理和架构实践。它包含了当前汽车软件架构的最新趋势和进展,对于理解汽车底层软件开发的概念和方法非常有益。\[3\] 除了书籍,还可以通过参加相关的培训课程和实践项目来学习汽车底层软件开发。此外,与软件PM和软件开发工程师进行交流和请教也是提高自己的学习效果的好方法。\[1\] 总之,学习汽车底层软件开发需要掌握嵌入式系统开发的知识和技能,同时了解软硬件协同开发的原理和方法。通过学习相关的书籍和与专业人士交流,可以帮助你更好地理解和应用汽车底层软件开发。 #### 引用[.reference_title] - *1* *2* *3* [汽车电子技术——软件、硬件、系统集成和项目管理之学习与分享概述](https://blog.csdn.net/weixin_38135620/article/details/115188067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值