#ifdef __A_C_
#define _A_EXTERN
#else
#define _A_EXTERN extern
#endif
struct Ev1527_Type
{
unsigned char Pass_Word[3];
};
_A_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
在a.c和b.c中分别调用Pass_Word_Ev1527的时候都会报错,MISSING ';' BEFORE 'PASS_WORD_EV1527'
这是为何?
8 个解决方案
#1
贴上完整的代码看看。
#2
main.h中
#ifndef __MAIN_H_
#define __MAIN_H_
#ifdef __MAIN_C_
#define _MAIN_EXTERN
#else
#define _MAIN_EXTERN extern
#endif
typedef struct Ev1527_Type
{
unsigned char Pass_Word[3];
};
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#endif
main.c中
#define __MAIN_C_
#include "STC12C5A.H"
#include "main.h"
void main()
{
Pass_Word_Area_Ev1527[1].Pass_Word[0] = 0;
P0 = Pass_Word_Area_Ev1527[1].Pass_Word[0];
Pass_Word_Area_Ev1527[2].Pass_Word[0] = 2;
P0 = Pass_Word_Area_Ev1527[2].Pass_Word[0];
}
小弟现在真的有点找不到头绪了,希望各位大侠给看看。
#ifndef __MAIN_H_
#define __MAIN_H_
#ifdef __MAIN_C_
#define _MAIN_EXTERN
#else
#define _MAIN_EXTERN extern
#endif
typedef struct Ev1527_Type
{
unsigned char Pass_Word[3];
};
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#endif
main.c中
#define __MAIN_C_
#include "STC12C5A.H"
#include "main.h"
void main()
{
Pass_Word_Area_Ev1527[1].Pass_Word[0] = 0;
P0 = Pass_Word_Area_Ev1527[1].Pass_Word[0];
Pass_Word_Area_Ev1527[2].Pass_Word[0] = 2;
P0 = Pass_Word_Area_Ev1527[2].Pass_Word[0];
}
小弟现在真的有点找不到头绪了,希望各位大侠给看看。
#3
对了,报错是指向main.h中定义的地方。
#4
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
改为
_MAIN_EXTERN struct Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
改为
_MAIN_EXTERN struct Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#5
谢谢!
加struct之后管用了,
#6
不过现在还是会报错
main.c(6): error C202: 'Pass_Word_Area_Ev1527': undefined identifier
#7
好了,现在可以了,是我太粗心,测试的时候名字写错了!
谢谢,非常感谢!
#8
顶
#1
贴上完整的代码看看。
#2
main.h中
#ifndef __MAIN_H_
#define __MAIN_H_
#ifdef __MAIN_C_
#define _MAIN_EXTERN
#else
#define _MAIN_EXTERN extern
#endif
typedef struct Ev1527_Type
{
unsigned char Pass_Word[3];
};
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#endif
main.c中
#define __MAIN_C_
#include "STC12C5A.H"
#include "main.h"
void main()
{
Pass_Word_Area_Ev1527[1].Pass_Word[0] = 0;
P0 = Pass_Word_Area_Ev1527[1].Pass_Word[0];
Pass_Word_Area_Ev1527[2].Pass_Word[0] = 2;
P0 = Pass_Word_Area_Ev1527[2].Pass_Word[0];
}
小弟现在真的有点找不到头绪了,希望各位大侠给看看。
#ifndef __MAIN_H_
#define __MAIN_H_
#ifdef __MAIN_C_
#define _MAIN_EXTERN
#else
#define _MAIN_EXTERN extern
#endif
typedef struct Ev1527_Type
{
unsigned char Pass_Word[3];
};
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#endif
main.c中
#define __MAIN_C_
#include "STC12C5A.H"
#include "main.h"
void main()
{
Pass_Word_Area_Ev1527[1].Pass_Word[0] = 0;
P0 = Pass_Word_Area_Ev1527[1].Pass_Word[0];
Pass_Word_Area_Ev1527[2].Pass_Word[0] = 2;
P0 = Pass_Word_Area_Ev1527[2].Pass_Word[0];
}
小弟现在真的有点找不到头绪了,希望各位大侠给看看。
#3
对了,报错是指向main.h中定义的地方。
#4
_MAIN_EXTERN Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
改为
_MAIN_EXTERN struct Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
改为
_MAIN_EXTERN struct Ev1527_Type Pass_Word_Ev1527[LEAN_NUMBER];
#5
谢谢!
加struct之后管用了,
#6
不过现在还是会报错
main.c(6): error C202: 'Pass_Word_Area_Ev1527': undefined identifier
#7
好了,现在可以了,是我太粗心,测试的时候名字写错了!
谢谢,非常感谢!
#8
顶