עבור לתוכן

לרשום STRUCT בקובץ עם סיומת H? (C)

Featured Replies

פורסם

אני צריך איכשהו לרשום שם

STRUCT X...

כדי שהוא יקבל את הפונקציות שרשומות שם (בקובץ H).

אז מה אני צריך לרשום שם? ניסיתי את המימוש המלא, רק הכותרת מלווה ב }{, או כמו הקודם ואחריו או רק כותרת מלווה ב; . כלום.

פורסם

מקובל להגדיר את המבנה בקובץ header ואף ליצור מופע שלו, ולהשתמש בו בקובץ c. הצהרות על הפונקציות שיעבדו עם המבנה גם כן יהיו ב-h אך המימוש והשימוש יהיה ב-c.

(זה היה הסבר כללי כי לא הבנתי מה אתה רוצה)

למשל


typedef struct
{
int shipCellFlag ;
} T_Cell , * T_pCell ;

הצהרה של פונקציה:


int FOO( FILE * const pFileCB , T_pCell const pCell , int * const pEOFFlag );

פורסם

אתה מדבר אולי על XIMPLE?

פורסם
  • מחבר

typedef struct

אני לא יכול בלי הTYPEDEF?

פורסם

1) כדי להגדיר בC STRUCT לא צריך TYPEDEF. יכולים לרשום struct myStruct כדי ליצור אחד כזה.

2) מה בידיוק אתה מנסה/רוצה לעשות?

פורסם
  • מחבר

soldierd.h

struct soldierr
{
int x;
int y;
char kind;
}

void setX(soldierr s, int num);
void setY(soldierr s, int num);
void setKind(soldierr s, int num);
void setXY(soldierr s, int numX, int numY);
void set(soldierr s, int numX, int numY, char k);

int getX(soldierr s);
int getY(soldierr s);
char getKind(soldierr s);

soldierd.c

void setX(soldierr s, int num)
{
s.x=num;
}

void setY(soldierr s, int num)
{
s.y=num;
}

void setKind(soldierr s, int num)
{
s.kind=k;
}

void setXY(soldierr s, int numX, int numY)
{
s.x=numX;
s.y=numY;
}

void set(soldierr s, int numX, int numY, char k)
{
s.x=numX;
s.y=numY;
s.kind=k;
}

int getX(soldierr s)
{
return(s.x);
}

int getY(soldierr s)
{
return(s.y);
}

char getKind(soldierr s)
{
return(s.kind);
}

לא עובר קומפילציה בגלל ההגדרה של הSTRUCT בקובץ SOLDIERD.H

עריכה:

דרך אגב, לא ממש קשור אבל עיניין אותי, איפה נמצאים כל קבצי MATH.C, STDIO.C וכו'?

פורסם

עשית #include לקובץ h מתוך הקובץ c ?

פורסם

הקבצים math.c לא קיימים במחשב שלך. הם עברו קומפילציה איפשהו במעבדות MS(או במקום אחר).

פורסם
  • מחבר

עשית #include לקובץ h מתוך הקובץ c ?

::)

אבל עכשיו עשיתי, וזה עדין ככה(הבעיה בH ולא בC).

הארורים הם

עריכה:

הקבצים math.c לא קיימים במחשב שלך. הם עברו קומפילציה איפשהו במעבדות MS(או במקום אחר).

אז איפה הקבצים המקומפליים שלהם(דרך אגב איך הקמפול שלהם עובד על כל המחשבים?)? לא ראיתי שום MATH קוץ מMATH.H

[attachment deleted by admin]

פורסם

תרשום struct soldier, לא soldier בלבד.

פורסם
  • מחבר

הארור הראשון עדין נשאר..

פורסם

תכניס;אחרי ההגדרה של הסטרקט.

פורסם
  • מחבר

וואלה, תודה.

פורסם

ב C אם אתה מגדיר STRUCT , כאשר אתה מגדיר מופע שלו אתה חייב לרשום

struct xx x1;

או להשתמש ב TYPEDEF. ב C++ אפשר כבר בלי ה TYPEDEF.

פורסם

תעשה לעצמך הרגל ב-C: אם אתה יכול, תמיד תגדיר typedef ותשתמש בו.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים