C/C++
CODERLOOK
这个作者很懒,什么都没留下…
展开
-
c++中的 extern "C"
原文出处:http://songpengfei.iteye.com/blog/1100239比如说你用C开发了一个DLL库,为了能够让C++语言也能够调用你的DLL输出(Export)的函数,你需要用extern"C"来强制编译器不要修改你的函数名。通常,在C语言的头文件中经常可以看到类似下面这种形式的代码:C代码 #ifdef __cplusplus转载 2015-08-14 10:41:25 · 437 阅读 · 0 评论 -
右移实现除法中的偏置量问题
问题的引出:int div16(int x){ int bias=(x>>31)&0xF; return (x+bias)>>4;}问题就在于代码中的第二行,当x>=0时,bias值为零,当x在计算机中,如果两个int型数a和b作除法(a/b),当a不能被b整除的时候,表达式的结果为(a/b)的商。这个商是通过向下取整得来的。即对于17/16,结果在区间(1,2)上原创 2015-11-19 11:01:16 · 3433 阅读 · 0 评论 -
由一道题引出的C++位域问题
题目如下(来源于牛客网):struct s{ int x: 3; int y: 4; int z: 5; double a;}求sizeof(s).(答案为16字节)题目理解首先说明题目中定义x,y,z的语法结构体成员x,y,z,是C++语法中int类型的位域.其声明形式为在成员名字之后紧跟一个冒号以及一个常量表达式,该表达式用于指定成员所占的二进制位数.如果可原创 2017-02-26 16:28:10 · 646 阅读 · 0 评论 -
C++虚函数表
本文系转载,原文传送门,在此对原文作者表示感谢一、概述为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表每个包含了虚函数的类都包含一个虚表。 我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承转载 2017-02-27 16:19:14 · 369 阅读 · 0 评论