读书人

?gcc版本有关问题导致的 invalid lval

发布时间: 2013-09-06 10:17:17 作者: rapoo

?gcc版本问题导致的 invalid lvalue 问题
调用libevnet时出现的问题。
定义如下:
typedef struct client_t
{
char * postbuf;
char * replybuf;
struct event read_ev;
struct event write_ev;
unsigned long post_len;
size_t post_written;
unsigned long reply_len;
size_t reply_written;

int client_fd;
State state;
}Client;
Client * clients;
使用下面这句话的时候,
EVENT_FD((&client->read_ev)) = -1;
用gcc version 4.1.2
编译,就报invalid lvalue in assignment
但用gcc version 2.96 就没有问题,能正常运行,
请问,我怎么才能在gcc4.1.2版本能正常运行。
谢谢。
[解决办法]
应该是(int)(ev)->ev_fd不能做为左值,你赋值语句改成下面的试试吧:

(&client->read_ev)->ev_fd = -1;

读书人网 >C++

热点推荐