huntime

C++博客 首页 新随笔 联系 聚合 管理
  0 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
SendNotification:这个函数将需要发送的数据加入待发送list中,最牛的是它可以自动调节发送的效率。不过我发现一处小BUG,可能作者自己也没有注意到,这两处设置线程优先级貌似反了

这个他在注释中已经写了
// Check if main thread can't handle number of notifications fast enough, throttle thread if neccessary


是要让主系程 降低优先级的 并没有作者所说的反了
你那好多函数结尾return d
return 的是局部数组阿?
good!
re: va_list 详解 ww 2011-08-22 10:31
ding qi
看了下代码,所有的work子进程都可以accept 父进程创建的listenning socket?
很少见过这样的用法阿
wirelesser[at]hotmail.com
re: _vimrc (转) ww 2010-02-10 13:35
不错,感谢分享,值得研究下。
re: pku poj 3009 ww 2009-08-06 15:32


呵呵,我QQ812330378,大牛有空加一下哈,望多帮助!
re: pku poj 3009 ww 2009-08-06 15:25
@Acaini.yaoyaozii
哇,这么谦虚呢,我看了你的博客里的题了,俗话说熟读唐诗三百首,不会作诗也会吟,做了这么多题,怎么都有几把刷子了啊!呵呵!
re: pku poj 3009 ww 2009-08-06 15:18
@Acaini.yaoyaozii

恩,看错了,还是读题不认真!
谢谢啊!
能加你QQ么??
re: pku poj 3009 ww 2009-08-06 14:27
你好,你的程序poj上能过,可是我有组测试数据麻烦解释一下好吗,
4 3
1 3 1
1 1 1
0 2 0
1 1 1
这个输出是不是-1?
这种情况他只能左右移动啊!
你的程序怎么输出 3 啊?
还是我题意理解错了?
麻烦大牛讲讲,还有你说的那个“口袋怪兽”的原题链接能给我吗?我想练练,
谢谢啊!!!
需要安装引擎?
我也发邮件弄个玩玩 安装的时候 提示
Environment variable:EGB_PATH not found! This application requires installation of the Gamebryo SDK.
好象环境变量 不能够安装 请问下怎么设置呢
少文件呢??
re: The first snow ww 2008-07-19 01:04
错了1个地方。
on the mountains,<on the meadows,>on the roofs of the living,on the graves of the dead.
@Xshl5
请注意,int* x, y;实际上声明了一个 int* 类型的变量 x 和一个 int 类型的变量 y ,而不是两个 int* 类型的变量。试着编译以下语句:
int z = 10;
int* x, y;
x = &z; //正确!x为 int* 类型
y = z; //正确!y为 int 类型
x = y; //错误!无法从 int 转换为 int*
y = &z; //错误!无法从 int* 转换为 int
@Xshl5
你可能说的是狭义的“类型”,只包括int、char、float、double等。
照这个说法 int* 都不能算是一种类型,因为:
int* x, y;
该声明实际上得到整型指针变量x和整型变量y,如果int*算是一种类型的话,那么y也应该被声明为int*型。所以一般这样写:
int *x, y;
或者干脆分开:
int* x;
int y;

在赋值语句中,不管等号左边还是等号右边的表达式都是有类型的。要想赋值语句合法,等号右边的类型必须跟等号左边的类型相同(强制转换后相同也算),或者能够隐式转换到左边。

int array[100] = {0, 1, 2}; //array的类型是 int [100]
int* p1 = array; //int[100]可以隐式转换到 int*
int* p2 = &array; //错误!无法从“int (*)[100]”转换为“int *”

实际上array返回的是array[0]的地址,我们可以用*(array + 1)来获得array[1]的值,不用*array++是因为array为右值。

由于int[100]能隐式转换到int*,某些书籍在未经考查的情况下直接说数组名array就是int*类型的,array的类型跟p1类型是一样的。照这种说法,&array就应该是int**类型的。但是:
int** p3 = &p1; //正确!&p1为int**类型。
int** p4 = &array; //错误!无法从“int (*)[100]”转换为“int **”

为了跟&array的类型匹配,LZ自己定义了一个类型:
typedef int (*ARRAY)[100];
ARRAY p2 = &array;

这种做法非常聪明,学习了。
@cuigang
想太多反而会把问题搞复杂。

C++ Primer 4th: ch2.3.1
左值可以出现在赋值语句(等号)的左边或右边。
右值只能出现在赋值(等号)的右边,不能出现在赋值语句的左边。

无论在哪本C/C++书籍中,对左值、右值的描述最基本的就是以上两句话。其他关于左值、右值话题的讨论、延伸都脱离不了以上两句话。

至于左值是否是地址,右值是否为数据本身——
对于 x = x + 1;
假设 x 为 int 类型,则编译后汇编语句应该为:
mov eax, DWORD PTR x_$[ebp]
inc eax
mov DWORD PTR x_$[ebp], eax

很明显 ebp 是地址而不是具体数据,而右边的 x 是作为右值出现的。也就是说除非字面值表达式(1, 'a'等),其他表达式不管左值右值,编译器都有可能以地址处理。

至于右值是否能被寻址——
const int iX = 100;
cout << &iX << endl;
是合法的。从加上const关键字那一刻起,iX就只能作为右值出现。
试图用强悍的指针来修改iX的值:
int* pX = &iX; //无法从“const int *”转换为“int *”
*pX = 101;

不是纠错,只是讨论。
把void SetId(int id_new)的参数改成引用或指针类型试试?


re: vs 2008 正式版下载 ww 2007-11-24 10:47
请问是中文版还是英文版