error C2143: 语法错误 : 缺少“;”(在“const”的前面)
size_t size = 0, sent = 0;
if (size == 0)
{
size = 0;
}
const char *data = luaL_checklstring(L, 2, &size);
long start = (long) luaL_optnumber(L, 3, 1);
long end = (long) luaL_optnumber(L, 4, -1);
p_timeout tm = timeout_markstart(buf->tm);
if (start < 0) start = (long) (size+start+1);
if (end < 0) end = (long) (size+end+1);
2>e:\luasocket-master\src\buffer.c(84): error C2143: 语法错误 : 缺少“;”(在“const”的前面)
2>e:\luasocket-master\src\buffer.c(85): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
2>e:\luasocket-master\src\buffer.c(86): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
-----------------------------------------------------------------------------------------------
size_t size = 0, sent = 0;
const char *data = luaL_checklstring(L, 2, &size);
long start = (long) luaL_optnumber(L, 3, 1);
long end = (long) luaL_optnumber(L, 4, -1);
p_timeout tm = timeout_markstart(buf->tm);
if (size == 0)
{
size = 0;
}
if (start < 0) start = (long) (size+start+1);
if (end < 0) end = (long) (size+end+1);
把if(size==0)这一块移到后面编译没报错,这是什么情况,实在是看不出错在哪了。
[解决办法]
LZ,你这是C语言,不是C++,所有的声明必须集中在开头,你哪个if语句块把const char *data的声明和前面的声明断开了,自然要报错