C与C++的小知识

来源:互联网 发布:企业信息安全软件 编辑:程序博客网 时间:2024/05/17 01:25

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;


原创粉丝点击