误动作回避1503:哪位高手帮我解决一下c编程中遇到的问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 11:34:46
error C2143: syntax error : missing ')' before '*'
error C2143: syntax error : missing '{' before '*'
error C2371: 'HMM' : redefinition; different basic types
see declaration of 'HMM'
error C2143: syntax error : missing ';' before '*'
error C2059: syntax error : ')'
hmm.h(20) : error C2143: syntax error : missing ')' before '*'
hmm.h(20) : error C2143: syntax error : missing '{' before '*'
hmm.h(20) : error C2371: 'HMM' : redefinition; different basic types
hmm.h(16) : see declaration of 'HMM'
hmm.h(20) : error C2143: syntax error : missing ';' before '*'
hmm.h(20) : error C2059: syntax error : ')'
hmm.h(26) : error C2143: syntax error : missing ')' before '*'
hmm.h(26) : error C2143: syntax error : missing '{' before '*'
hmm.h(26) : error C2059: syntax error : 'type'
hmm.h(26) : error C2059: syntax error : ')'
hmm.h(27) : error C2143: syntax error : missing ')' before '*'
hmm.h(27) : error C2143: syntax error : missing '{' before '*'
hmm.h(27) : error C2059: syntax error : 'type'

hmm.h的头文件中
(1)HMM定义了一个结构体
(2)然后用HMM在函数声明中定义了形参
#ifndef _HMM_H_
#define _HMM_H_

#define NUMBERSTA 3
#define NUMBEROBS 10

typedef struct {
int N; /* 状态的个数; Q={1,2,...,N} */
int M; /* 观察值得个数; V={1,2,...,M}*/
double **A; /* A[1..N][1..N]. a[i][j] 是从t时刻的状态i转移到t+1时刻
的状态j的转移概率*/
double **B; /* B[1..N][1..M]. b[j][k] 是在状态j观察到观察值k的概率 */
double *pi; /* pi[1..N] pi[i] 是进入Markov链的状态分布 */
} HMM;

//关于HMM的文件存取、初始化、拷贝函数
void ReadHMM(FILE *fp, HMM *phmm);//从磁盘文件fp读入到HMM模型中的N,MA,B,PI
void PrintHMM(FILE *fp, HMM *phmm);
void InitHMM(HMM *phmm, int N, int M, int seed);
void CopyHMM(HMM *phmm1, HMM *phmm2);
void FreeHMM(HMM *phmm);

编译没问题 ,连接的时候就出现了上面的错误信息,说是什么重复定义,
我现在不知道怎么改?
哪位高人能给个解决的办法??
非常感谢
hmm.h(27) : error C2059: syntax error : ')'

是不是漏了
#endif

因为你没有提供完整的程序,所以不知道#endif在哪里.
"#ifndef _HMM_H_" 需要有对应的 #endif 标明#if段到哪里结束. #endif 好象不可省.

从上面给的信息看,程序有语法错误(括号配对问题),编译没有通过.

从错误报告上都能看出是程序编写不完整的问题了啊,少了(还是*什么的,你仔细看看吧,肯定是什么函数忘记用}结束了啊,或者是很多个"("忘记了打相应多个")"了啊,什么的,自己动手丰衣足食,而且还能学到很多,努力吧

()
{}
if endif
这些都是对应的 仔细检查一下你的程序,很不完整
一些基本的错误应该看一下书