Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GCC错误:在';之前应为主表达式';带有MSVC C+的令牌+;代码_C++_Visual C++_Gcc_Compiler Errors - Fatal编程技术网

C++ GCC错误:在';之前应为主表达式';带有MSVC C+的令牌+;代码

C++ GCC错误:在';之前应为主表达式';带有MSVC C+的令牌+;代码,c++,visual-c++,gcc,compiler-errors,C++,Visual C++,Gcc,Compiler Errors,下面是代码,其中包含GCC而非MSVC产生的非常奇怪的错误(5个错误,在错误行的注释表单中引用): /*根据文件名模式匹配字符串,如果 它匹配,如果不匹配,则为非零*/ int GNU_fnmatch(常量字符*模式、常量字符*字符串、int标志) { 寄存器常量char*p=pattern,*n=string; 寄存器无符号字符c; #定义FNM_案例16 #定义FNM_前导目录8 #定义折叠(c)((旗帜和FNM_CASEFOLD)?下方(c):(c)) 而((c=*p++)!='\0')

下面是代码,其中包含GCC而非MSVC产生的非常奇怪的错误(5个错误,在错误行的注释表单中引用):

/*根据文件名模式匹配字符串,如果
它匹配,如果不匹配,则为非零*/
int GNU_fnmatch(常量字符*模式、常量字符*字符串、int标志)
{
寄存器常量char*p=pattern,*n=string;
寄存器无符号字符c;
#定义FNM_案例16
#定义FNM_前导目录8
#定义折叠(c)((旗帜和FNM_CASEFOLD)?下方(c):(c))
而((c=*p++)!='\0')
{
c=折叠(c);
开关(c)
{
案例“?”:
如果(*n=='\0')
返回1;
else if((标志和FNM_路径名)和&&*n=='/'))
返回1;
如果((标志和FNM_期间)和&*n=='。'&&
(n==string | |((标志和FNM|U路径名)和&n[-1]=='/'))
返回1;
打破
案例“\\”:
如果(!(旗帜和FNM_NOESCAPE))
{
c=*p++;
c=折叠(c);
}
if(折叠((无符号字符)*n)!=c)
返回1;
打破
案例“*”:
如果((标志和FNM_期间)和&*n=='。'&&
(n==string | |((标志和FNM|U路径名)和&n[-1]=='/'))
返回1;
对于(c=*p++;c=='?'| c=='*';c=*p++,+++n)
if(((标志和FNM_路径名)和&&*n=='/'))||
(c=='?'&&*n=='\0'))
返回1;
如果(c=='\0')
返回0;
{
无符号字符c1=(!(flags&FNM\n NOESCAPE)和&c=“\\”)?*p:c;
c1=折叠(c1);
对于(--p;*n!='\0';++n)
if((c='['| | FOLD((无符号字符)*n)=c1)&&
GNU\u fnmatch(p,n,标志和~FNM\u周期)==0)
返回0;
返回1;
}
案例“[”:
{
/*如果字符类的意义倒置,则为非零*/
register int not;//错误1错误:在“!”标记之前应为非限定id
如果(*n=='\0')
返回1;
如果((标志和FNM_期间)和&*n=='。'&&
(n==string | |((标志和FNM|U路径名)和&n[-1]=='/'))
返回1;
not=(*p=='!'|*p=='^');//错误2:在“=”标记之前应该有主表达式
if(not)//错误3错误:在“')标记之前应该有主表达式
++p;
c=*p++;
对于(;;)
{
寄存器无符号字符cstart=c,cend=c;
如果(!(标志和FNM_NOESCAPE)和&c='\\')
cstart=cend=*p++;
cstart=cend=FOLD(cstart);
如果(c=='\0')
/*[(未确定的)损失*/
返回1;
c=*p++;
c=折叠(c);
如果((标志和FNM_路径名)和&c=='/'))
/*[/]永远无法匹配*/
返回1;
如果(c='-'&&&p!=']')
{
cend=*p++;
如果(!(标志和FNM\u NOESCAPE)和&cend=='\\')
cend=*p++;
如果(cend=='\0')
返回1;
cend=折叠(cend);
c=*p++;
}
如果(折叠((无符号字符)*n)>=cstart
& &折叠((unChar char)*n)

< St>>/St>>是C++下的保留词,但不是C.</P> 错误是不言自明的:

if (!not) // Error  4   error : expected primary-expression before ')' token
        ^ //expecting operand for 'not' to act on, got ')' instead.

使用GCC中的任何
C
进行编译,或者更改名称。

not
是一个关键字,或者如果您想使用更准确的术语,可以使用替代标记。@billz哦,源文件的名称是OgreSearchOps.cpp!我原以为它抱怨a!会更容易理解。
if (!not) // Error  4   error : expected primary-expression before ')' token
        ^ //expecting operand for 'not' to act on, got ')' instead.