“struct没有成员命名”错误与开发机器上的gcc

时间:2013-11-15 10:03:42

标签: gcc struct

#include <stdio.h>
#include <stdlib.h>
#include "ReadMethods.h"


int main(int argc,char * argv[])
{

DPDA WordChecker;
DPDA * WordCheckerPointer=&WordChecker;

WordChecker.DPDAFilename=(char*)malloc(25*sizeof(char));
WordChecker.DPDAInputFilename=(char*)malloc(25*sizeof(char));
WordChecker.DPDAOutputFilename=(char*)malloc(25*sizeof(char));
strcpy( WordChecker.DPDAFilename,argv[1]);
strcpy( WordChecker.DPDAInputFilename,argv[2]);
strcpy( WordChecker.DPDAOutputFilename,argv[3]);

readDPDA(argv[1],WordCheckerPointer);
readInputLines(argv[2],WordCheckerPointer,argv[3]);

return 0;
}

这是我的代码,从mallocs到最后一个strcpy(),总共6行给出错误。错误是“DPDA没有名为DPDAFilename的成员”,对于我工作的每个malloc和strcpy行的其他字段也是如此。这是头文件的一部分。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tagRule{
char *startingState;
char symbolToPop;
char expectedInput;
char *endingState;
char symbolToPush;
}Rule;

typedef struct tagStackDPDA{
char * arrayOfSymbols;
int stackElementCount;
char * currentState;
}stackDPDA;

typedef struct tagDPDA{
char * alphabet;
char * stackSymbols;
char ** states;
char *startingState;
char **finalStates;
int finalStatesAmount;
Rule * ruleList;
stackDPDA stackOfDPDA;
int sizeArray[4];//This array holds amount values of states,alphabet symbols,stack       symbols and transition rules
char *DPDAFilename;
char *DPDAInputFilename;
char *DPDAOutputFilename;
}DPDA;

代码在codeblocks环境中工作正常但在gcc(-Wall -ansi)中。这些文件名来自输入文本文件,但我不确定它是否会导致此错误。 编辑:顺便说一句,我使用这个命令行进行编译;

gcc -Wall -ansi main.c ReadMethods.h -o WordChecker

1 个答案:

答案 0 :(得分:1)

如果你在C模式下编译,你必须在标题中使用C风格的注释吗? / ** /而不是//