1.sizeof是什么时候编译?返回值类型;
2.函数入栈顺序?
3.位域的优缺点,以及是否具有可移植性;
4.复杂度计算?
5.预编译?
6.断言?
7.可变参数?
8.结构体变量是否可直接赋值使用,是否可以使用==做判断;两个结构体如何做比较?memcmp
9.cmake
10.gdb
手把手教你玩转GDB
11.arm汇编
12.双向链表和单向链表
13.数据结构
14.求第五个大的数?
15.执行./a.out时系统做了哪些动作?
16.指针和数组的区别;
17.tcp和udp区别?
18.进程和线程的区别,哪一块是线程独享的;
19.静态库和动态库的区别;
1. 静态库在编译的时候直接将代码整合到目标程序中,编译后的可执行程序是独立的可执行程序,浪费内存;
2. 动态库在运行的时候才会被载入。避免浪费内存;
3.g++ -fPIC -shared -o libdynmath.so DynamicMath.cpp
20.排序方法
21.互斥锁的实现逻辑
22.字节对齐,是全部都是默认四字节对齐?
23.负数的左移和右移有什么区别?
测试-125 >> 1 为多少?
实测值为:-63
原因:1.负数在内存中的存储方式是以数据补码形式存放;
-63的补码: 1100 0001
右移一位 : 1110 0000
还原数为 : 1010 0000
则表示为 : -32
说明右移时:符号位跟随移动,但最高位(符号位)补0还是补1取决于编译系统的规定;在我测试的编译环境中是补1操作;
24. 0x01 << 2 + 3;
数值是多少?
实测:值等于32;
原因: +号优先级大于 << ;
注意点:左移右移的位数不能大于和等于数据的长度,不能小于0;