1. c++程序中调用被C编译器编译后的函数,要加extern "C"。由于C++支持函数重载,C语言不支持,C与C++编译后名字不同,使用extern "C"解决名字匹配问题。
2. 使用运算符时,int以下的类型会自动提升为int。运算符优先级:
1) () [] -> . :: ++ --
2) ! ~ ++ -- -负 +正 * & (type) sizeof 从右向左
3) ->* .*
4) * / %
5) + -加减
6) << >>
7) < <= > >=
8) == !=
9) &
10) ^
11) |
12) &&
13) ||
14) ?: 从右向左
15) = += -=*= /= %= &= ^= |= <<= >>= 从右向左
16) ,
3. C++中类型转换符四种:
reinterpret_cast: 仅修改操作数类型,二进制复制,只有当转化两个内存布局相同对象才使用。
static_cast: 没有运行时类型检查来保证安全性。基类紫子类间、基本数据间(等同于括号转换)、空指针到目标类型空指针、表达式到void类型
const_cast: 修改来类型的const或volatile属性
dynamic_cast: 只有这个是运行时转换
4. C++中指定位置分配内存:
void *pMem = malloc(10);
A* a = new(pMem) A;