【美团】校招研发笔试


死锁是什么?

答:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

i++和++i安全性

答:i++是不安全的,++i是安全的。因为i++不是原子操作,具体介绍可以看大神的博文i++的线程安全问题

所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束


美团校招研发笔试部分的记录就先到这!接下来,是一些整理的c++要点概要

内敛函数

使用内联函数的时候要注意:

  1. 递归函数不能定义为内联函数。
  2. 内联函数一般适合于不存在 while 和 switch 等复杂的结构且只有 1~5 条语句的小函数上,否则编译系统将该函数视为普通函数。
  3. 内联函数只能先定义后使用, 否则编译系统也会把它认为是普通函数。
  4. 对内联函数不能进行异常的接口声明。

重载

两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,在编译时,由编译器根据实参的类型和个数,自动确定调用哪一个函数,即为重载

注意事项:

  1. 形参的个数或类型至少要有一项是不同的;
  2. 编译器不以返回值来区分函数。

sizeof

  • sizeof 是操作符, 在编译阶段就获得结果, strlen 是函数调用, 在运行阶段才获得值。
  • sizeof 求数组时, 大小等于数组元素个数*每个元素的大小(其中, 计算字符串数组是需要计算结束符’\0’, 这是与 strlen 的区别, strlen 不计算最后的’\0’, 如 char a[] = “abcd”; 表示的是一个字符串, 字符串会有一个’\0’作为结尾, 所以整体存储 a 的大小为 5, 但是如果用 strlen判断 a 的长度不会计算末尾的’\0’, 所以是 4) ,但是当数组是函数的形参时会将会降为指针,在 32 位系统中无论什么指针类型都是占 4 个字节。
  • sizeof 运算符算引用类型时, 是所引用的类型的大小; sizeof 指针得到的是指针本身的大小

大小端

大端和小端存储指的是对于多字节数据的表示方式。

  • 在大端存储中, 如 ARM 平台, 数据的高字节保存在内存的低地址中, 而数据的低字节保存在内存的高地址中(低位高地址, 高位低地址 );
  • 而在小端存储中, 如 X86、 x86-64 平台、 80X86, 数据的低位保存在内存的低地址中, 而数据的高位保存在内存的高地址中(低位低地址, 高位高地址) 。

例如,对于十六进制数 0x1234 , 高位 0x12 , 低位 0x34(内存地址: 高->低) , 数组中, 大端存储的表示方式是 0x12 0x34, 而小端存储的表示方式是 0x34 0x12。 结构体中, 先声明的是低地址, 后声明的是高地址, 如果先声明 m, 则大端存储, m 是 0x12。

nm命令

nm 命令查看汇编代码, 由 GNU C++汇编生成的改编后的函数名规则如下:

  • 每个改编后的函数名(除了 main 函数) 以 2 个下划线( __) 开始, 后跟字母 Z、一个数值和函数名在跟着形参列表的编码(没有形参就不用了)。字母 Z 后的数值表示函数名称中字符的个数。

例如,函数 int donothing(char a, int b, float &c, double &d)在它的函数名中有 9 个字符, 所以改编后名字的前缀是__Z9。 然后, 接着跟着函数名, 后跟有它的形参列表的编码。 在函数 donothing的形参列表中 char 表示为 c, int 表示为 i, float &表示为 Rf, double &表示为 Rd。 所以最
终汇编形成的函数名为: __Z9donothingciRfRd

要点

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值