hi there, i have struct with the problem.I'm writing a code for DS12887,And typedef two structures in the header file.It is normal before writing a function. But now the error C141. I am more confused. Ask for The help Header file:
#include <stdio.h> #include <absacc.h> typedef struct { ...... }stTimeStr; typedef struct { ...... }stDsStatus; void InitaliseDS(stTimeStr* stClkTime,stTimeStr* stAlmTime); void SetClkTime(stTimeStr* stClkTime); void SetAlmTime(stTimeStr* stAlmTime); void GetDSStatus(stDsStatus* stStat);
C Source file:
#include <stdio.h> #include <absacc.h> #include "DS12887.h" void InitaliseDS(stTimeStr* stClkTime,stTimeStr* stAlmTime) { ...... } void SetClkTime(stTimeStr* stClkTime) { ...... } void InitaliseDS(stTimeStr* stClkTime,stTimeStr* stAlmTime) { ...... } void GetDSStatus(stDsStatus* stStat) { ...... } void GetDSStatus(stDsStatus* stStat) { ...... }
My e-mail is zhanghongkun1984@gmail.com
The forum doesn't have any upload.
But how hard is it to figure out if there exists any type byte_1, and if it is conditionally disabled or not? Or if it's missing just add that as a type yourself?
You are expected to be able to take care of much more complex problems than that.
But how hard is it to figure out if there exists any type byte_1, and if it is conditionally disabled or not?
It could be hard or easy, depending on how complex the header files construct is of which we only get to see the file name: ComUnit.h. The crucial technique to resolve this kind of problem hasn't been mentioned so far: the extraction and inspection of preprocessor output. So: have uVision generate a preprocessor output listing, and look at it very closely.
http://www.keil.com/support/man/docs/c51/c51_preprint.htm
And why are you using #define rather than typedef anyhow?!
And as we all know, it is now illegal/wrong/unacceptable to use a #define rather than a typedef?!
Look at it the other way: the typedef is a part of the language and is specifically designed for this - why would you not use it?!
Look at it another way: Is the use of a #define causing the OP's problem? Or is it just potentially adding confusion to an obvious beginner?