error: expected unqualified-id before 'xxx'

发生了什么

看如下代码

class A
{
public:
    void do() {}
};

这会引起GCC报错: error: expected unqualified-id before 'do'

解释

通常 expected unqualified-id before 这个错误通常是因为语法错误引起的, 如上一个语句没有用
分毫结尾之类的. 这个也不例外, 原因就是 do是关键字, 函数名及变量的名字是不能和关键字重名的.

当然有些情况可以如 operator int().

因此我们给函数取名时注意不要和关键字冲突, 函数名如果包含了关键字, 最好加一些明确的词将其区分开来.

发布了66 篇原创文章 · 获赞 8 · 访问量 2万+
展开阅读全文

[Error] expected ')' before ';' token这个错误一直消不掉,第一次提问,没有悬赏真抱歉了,谢谢大哥们了

06-16

#include<stdio.h> struct student { char name[]; float course[5]; }stu[20]; void average(struct student *p) { float aver=0; int i,j; for(i=0;i<20;i++) {for(j=0;j<=4;j++) {aver+=((*(p+i)).course[j])/5.0;} printf("%10s:average is %5f\n",((*(p+i)).name,aver); } } void each_average(struct student *p) { int i,j; float aver=0; for(j=0;j<=4;j++) {for(i=0;i<20;i++) {aver+=((*(p+i)).course[j])/20.0;} printf("%f ",aver); } } void max_min(struct student *p) { int i,j,k,t; for(k=0;k<=4;k++) {for(i=0;i<20;i++) {for(j=i+1;j<20;j++) if(((*(p+i)).course[k])>((*(p+j)).course[k])) {t=((*(p+i)).course[k]); ((*(p+i)).course[k])=((*(p+j)).course[k]); ((*(p+j)).course[k])=t; } } printf("max=%f,min=%f\n",(*(p+19)).course[k],(*p).course[k]); } } void unpass_student(struct student *p) { int i,k;![图片说明](https://img-ask.csdn.net/upload/201906/16/1560691337_556070.png) for(k=0;k<=4;k++) { for(i=0;i<20;i++) { if((*(p+i)).course[k]<60.0) printf("%s ",(*(p+i)).name); } } } int main() { int i; struct student *p; p=stu; float max,min; printf("输入学生名字,用回车隔开"); for(i=0;i<20;i++) scanf("%s",student[i].name); printf("输入学生各科成绩,用逗号隔开"); for(i=0;i<20;i++) scanf("%f,%f,%f,%f,%f",stu[i].course[0],stu[i].course[1],stu[i].course[2],stu[i].course[3],stu[i].course[4]); for(i=0;i<20;i++) printf("%10s:%5f,%5f,%5f,%5f,%5f",stu.name[i],stu[i].course[0],stu[i].course[1],stu[i].course[2],stu[i].course[3],stu[i].course[4]); average(p); each_average(p); max_min(p); unpass_student(p); return 0; } 问答

77: error: expected unqualified-id before '^' token

10-12

#define TO_SIGNED(x) ((signed)(x)) class BigInteger{ protected: unsigned* array; BigInteger(unsigned*const theArray){ array = theArray; } inline unsigned* getArray(){ if(this == BigIntegerNull) #ifdef _EXCEPTION_H_ throw NullPointerException(); #else return NullArray; #endif return array; } BigInteger expand(unsigned newSize, bool extendSign){ if(getArray() == NullArray){ BigInteger n(NullArray); return n; } if(newSize <= array[0]) return *(new BigInteger(*this)); BigInteger nbi(new unsigned[newSize+1]); register unsigned i; for(i = 0; i <= array[0]; i++) nbi.array[i] = array[i]; if(extendSign && TO_SIGNED(array[array[0]]) < 0){ for(; i <= newSize; i++) nbi.array[i] = -1; }else{ for(; i <= newSize; i++) nbi.array[i] = 0; } return nbi; } public: static BigInteger*const BigIntegerNull; static unsigned*const NullArray; BigInteger(const BigInteger& origin){ #ifdef _EXCEPTION_H_ if(origin.getArray() == NullArray) throw NullPointerException(); #endif register unsigned size = origin.array[0]+1; array = new unsigned[size]; do{ --size; array[size] = origin.array[size]; }while(size > 0); } BigInteger _xor(BigInteger bi, bool extendSign){ if(getArray() == NullArray || bi.getArray() == NullArray){ BigInteger n(NullArray); return n; } register unsigned i; if(array[0] <= bi.array[0]){ for(i = array[0]; i > 0; i--) array[i] &= bi.array[i]; }else{ for(i = 1; i <= bi.array[0]; i++){ array[i] ^= bi.array[i]; } if(extendSign && TO_SIGNED(bi.array[bi.array[0]]) < 0){ for(; i <= array[0]; i++){ array[i] = -1; // or -1 } } } return *this; } BigInteger xor(BigInteger bi, bool extendSign){ // 编译器指示错误的行 BigInteger n(NullArray); if(getArray() == NullArray || bi.getArray() == NullArray){ return n; } register unsigned i; if(array[0] <= bi.array[0]){ n = this->expand(bi.array[0], extendSign); for(i = array[0]; i > 0; i--){ n.array[i] ^= bi.array[i]; } if(extendSign && TO_SIGNED(bi.array[bi.array[0]]) < 0){ for(; i <= bi.array[0]; i++){ n.array[i] = ~bi.array[i]; // xor -1 } }else{ for(; i <= bi.array[0]; i++){ n.array[i] = bi.array[i]; // xor 0 } } }else{ n = *(new BigInteger(*this)); for(i = 1; i <= bi.array[0]; i++){ n.array[i] ^= bi.array[i]; } if(extendSign && TO_SIGNED(bi.array[bi.array[0]]) < 0){ for(; i <= array[0]; i++){ n.array[i] = ~array[i]; // xor -1 } } } return n; } }; BigInteger*const BigInteger::BigIntegerNull = reinterpret_cast<BigInteger*>(0); unsigned*const BigInteger::NullArray = reinterpret_cast<unsigned*>(0); 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览