首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

error C2143: 语法异常 : 缺少“;”(在“const”的前面)

2014-01-14 
error C2143: 语法错误 : 缺少“”(在“const”的前面)size_t size 0, sent 0if (size 0){size 0}

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的声明和前面的声明断开了,自然要报错

热点排行