最近我编码需要用到在头文件(全局作用域)内对结构体某个成员进行初始化,写出类似C99标准方式如下:
// -------------------
struct test_struct
{
int test_a;
int test_b;
};
// 这一句出错
struct test_struct testing = {
.test_a = 10;
};
// -------------------
Error为
expected primary-expression before '.' token.
昨天一直在解决这个问题,网上没查找到相关资料,求助。
你好,在你的启发下今天下午找到原因了,并已解决,编译成功,谢谢你的答案!
你好,我使用的是g++ --version3.4.5 mingw-vista special r3,且正在编译的是C++ 的程序文档
追答那就是了,g++是c++的编译器,.test_a = 10;只能是标准C99的用法,所以只能用gcc编译
你好,这样试过了,全局作用域这样初始化不行的。
C++ expected primary-expression before ')' token
include<iostream> using namespace std;int main(){ int n,i,j,q;((n>=1)&&(n<=10));cin>>n;for(i=1;i<=n;i++){ for(j=1;j<=2*i-1;j++){ cout<<"*";} for(q=n-1;q>=1;q--){\/\/你把这个打成小括号了 cout<<" "<<endl;}\/\/你把这个打成小括号了 cout<<...
C++ expected primary-expression before '.' token.
按照C++03,可以写成 struct test_struct testing = {10, 20};但最好是用前一条回答说的,用分离的语句指定各成员变量的值
...expected primary-expression before ';' token ,错误类似这个,求原 ...
float b) {x_size=a;y_size=b;} virtual float area()const=0;};class Triangle:public Firgure{public: Triangle(float a,float b): Firgure(a,b){}virtual float area() const{return 1.0\/2*x_size*y_size;
...expected primary-expression before ']' token
show_array(arr[][3],Asize);应改为:fill_array(arr,Asize);show_array(arr,Asize);根据你的函数定义,在这里只能传递数组的地址,而不是整个数组
c++问题 : expected primary-expression before '[' token
\/\/修改编译错误的办法:\/\/所有提示expected primary-expression before '&' token;的地方 \/\/都把ArrayList&删掉 \/\/以及将i和j的赋值语句改为i=list1.elems;j=list2.elems;include include using namespace std;define INIT_SIZE 100 define INC_SIZE 10 \/\/定义一个线性表 typedef struct { int *...
...expected primary-expression before '.' token
第二种通过fdevopen()函数指定 (C++编译器)fdevopen()函数原型:FILE *fdevopen(int(*put)(char c,FILE *stream),int(*get)(FILE *stream))第一个参数指向设备输出函数,第二个参数指向设备输入函数,返回流指针。第一个参数为NULL,则流按只读方式打开,stdin是流的引用名。第二个参数为NULL...
c++ Error] expected primary-expression before '||' token
if( 0 == year % 400 || ( 0 == year %4 && 0 != year %100 ) )
expected initializer before'\/'token是什么意思?
意思是:C++的语法错误。2、expected initializer before '<' token.意思是:借鉴里面问没有指定名字空间的问题,重新把boost库的路径放到了答程序的属性->c++编译器->包含目录里面。3、expected primary-expression before '.' token.意思是:用avr-gcc编译是可以通过的,但用avr-c++就出现上面错误...
C++,16 expected primary-expression before ')'token
include<stdlib.h> int main(){ int x;int y;int z;char t;cout<<"输入运算中第一个数";cin>>x;cout<<"输入运算中第二个数";cin>>y;cout<<"输入如何运算,加或减";cin>>t;\/\/if下面的两个语句都是属于if之中的,要用大括号哦 否则要有两个输出,这两个输出就没有限制了,都要...
C++中有expected primary-expression before ')' token怎么办?_百度...
由于你的“+-*\/”,是一个裸的符号,没有被单引号''给包起来,被C++编译器当成了一个实际的加减乘除的,表达式。纠错很简单,就把对应的加减乘除号,用单引号括起来:if((c==+))修改成:if(c=='+')其他类似的地方相同处理就可以。没有查看你程序的其他问题。