- 博客(4)
- 收藏
- 关注
原创 linux内核中的container_of宏
//xk> 引子 首先看一个简单的面试题:定义一个宏FIND(stru, e),求结构体stru中某个成员e相对于stru的偏移量。 题目的解答很简单:#define FIND(stru, e) &(((stru *)0)->e)将常量0强制类型转化为stru *类型的指针。因为结构体的首地址为0,所以其成员的地址即为相对于结构体的偏移量。
2012-07-03 22:11:31 1031
原创 extern关键字
extern关键字最原始的用处是变量声明,这里不细说。 //xk> 在C++程序中调用C编译器编译的函数 我们知道,在C++程序中可以直接调用C语言写的函数,不仅在语法上C++编译器基本可以编译C程序,而且C++程序还可以调用C编译器编译好了的函数,不过要加上extern "C". 因为C++支持函数重载,这就造成C++编译器和C编译器
2012-07-02 14:56:13 770
原创 面试题:两个变量的最大值、最小值和变量交换
//xk> 例题 【题目】不用if, ?: , switch等判断语句,找出两个给定变量中的最大值和最小值 【解答】要注意直接a + b可能导致溢出。 下面的解答来自《程序员面试宝典》第二版,很明显存在溢出问题。不过这种思路有点意思。int max = (a + b + abs(a - b)) >> 1;int min = (a +
2012-07-02 14:43:15 3118
原创 面试题:二进制表示中1的个数。
//xk> 例题 【题目】用一个表达式判断一个数X是否是2的N次方。不能用循环语句。 【解答】在面对很多问题的时候,人与人之间的差距不仅仅表现在聪明才智,更表现在专业程度。或言之,绝对智商上差距的影响是微乎其微的,绝大程度上是依赖于:是否更加经验丰富,是否更加训练有素。 就像这个题目,知道的人就知道是一个很小的技巧,第一次见的人就很可能想破脑袋
2012-07-02 14:06:37 744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人