C程序员基础知识总结

前言

作为一个c程序员,从业四五年了,可能是写业务代码写多了,基础的东西融入到思维中以后,用一板一眼语言表述不出来。也是当初基础不扎实。所以总结一下,日后经常回看。

一. static关键字

1. 隐藏
2. 影响变量的生存周期

在写MRCP的plugin时,遇到一个bug非常有代表性。
集成阿里的语音合成接口,我把阿里的库封装了一层,仅仅暴露获取token和发送请求的接口,内部使用curl封装了阿里语音服务的restful接口。通过回调函数,处理拿到的http响应的body数据。这个回调函数定义时,我使用了static修饰符修饰。功能测试时,合成请求正常返回。后来压力测试,就发现MRCP进程异常退出。
从coredump文件中可以看到:
gdb这个core文件的界面
导致MRCP服务宕掉的原因,并不是跟所做的plugin相关的处理,而且是mrcp服务本身的代码并没有做修改,所以猜测是踩了内存。当把static修饰符去掉以后,运行正常,压力测试通过。
为保险起见,回调函数不要使用static修饰,保证它的作用域是整个程序。

3. 默认初始化为0
4. c++中类的静态成员函数

二. 内存分区

三. 进程和线程的区别

1.
2.
3.
4.

四.线程之间的通信方式

五.大端序和小端序

大端序是最容易理解的。低地址存放数据的高位。高地址存放数据的低位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值