无意中自各儿想了一道题目,问问作者的意图
无意中自己想了一道题目,问问作者的意图
说说我写这段代码的意图,蛮有意思的,可以作为面试题目
------解决思路----------------------
当该函数被第一次调用时,id就记住了调用线程的线程id,由于是静态变量,它的生存期自此次开始就不会消亡。如果以后还有其他线程使用这个函数的话,断言就失败了。
------解决思路----------------------
那么我也考考你,下面这个函数是做什么的?
------解决思路----------------------
c里面才能这样用,c++貌似不可以吧?
------解决思路----------------------
完全看不懂啊
------解决思路----------------------
这个是什么呀,哥哥
------解决思路----------------------
最早是云风github上看到的,roundup 到 2^m
------解决思路----------------------
防止被其他线程调用。
------解决思路----------------------
这段代码的用处在什么地方呢?楼主可以举个例子吗?
------解决思路----------------------
哦,明白了,但是这个仅仅是一个理论的分析而已,这段代码在实际的工程中有使用的例子吗?
void fun()
{
static int id = GetCurrentThreadId();
if(id!=GetCurrentThreadId())
{
ASSERT(0);
}
}
说说我写这段代码的意图,蛮有意思的,可以作为面试题目
------解决思路----------------------
当该函数被第一次调用时,id就记住了调用线程的线程id,由于是静态变量,它的生存期自此次开始就不会消亡。如果以后还有其他线程使用这个函数的话,断言就失败了。
------解决思路----------------------
那么我也考考你,下面这个函数是做什么的?
int FUNCTION(int v)
{
--v;
v
------解决思路----------------------
= v >> 1;
v
------解决思路----------------------
= v >> 2;
v
------解决思路----------------------
= v >> 4;
v
------解决思路----------------------
= v >> 8;
v
------解决思路----------------------
= v >> 16;
++v;
return v;
}
------解决思路----------------------
c里面才能这样用,c++貌似不可以吧?
------解决思路----------------------
完全看不懂啊
------解决思路----------------------
这个是什么呀,哥哥
------解决思路----------------------
最早是云风github上看到的,roundup 到 2^m
------解决思路----------------------
防止被其他线程调用。
------解决思路----------------------
这段代码的用处在什么地方呢?楼主可以举个例子吗?
------解决思路----------------------
哦,明白了,但是这个仅仅是一个理论的分析而已,这段代码在实际的工程中有使用的例子吗?