עבור לתוכן

הגדרת טיפוס ב typedef ב C

Featured Replies

פורסם

מה המשמעות של הביטוי:

*s[i]

?

איזה אופרטור פועל קודם, [] או *?

  • תגובות 126
  • צפיות 11k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

[] לפני

בסדר עכשיו עובד...אני לא הייתי מגיע לזה בחיים כמו כן עדיין לא הבנתי למה זה קרה רק אחרי שאני הכנסתי עוד קבוצה.

תודה.

פורסם

מזל טוב. מה תעשה כשתצטרך לדבג ת'ראדים שרצים ברקע וכוללים I\O...

פורסם
  • מחבר

אני אגיד לך ביום שאני אצתרך לעשות את זה...

פורסם

בגלל זה עושים מה שאמרתי - בדיקות, בדיקות ועוד בדיקות. קודם כל בודקים קבוצה אחת (ומכניסים לה כל מיני מספרים, לא רק 1 ו-2 אלא גם מספרים שלא ייכנסו לתא הראשון), ואז עושים אותו דבר עם שתי קבוצות, ואפילו עם שלוש.

מה שקרה פה הוא שבעצם הייתה לך דריכת זכרון - אם s הצביע ל-A, ו-i=1 אז כשניגשת ל-[s[i* בעצם ניגשת בטעות לתא הראשון ב-B במקום לתא השני ב-A (למה? כי ככה בנוי הזכרון של התכנית).

פורסם
  • מחבר

תודה על ההסבר. ועל העזרה.

פורסם
  • מחבר

שאני ממסה לקמפל את התכנית ב gcc באבונטו יש לי אזהרה בחלק הזה



char *s=strtok(g," ");

האזהרה היא: expected declaration specifiers or '...' before '*' token

למה זה?

פורסם

ביצעת ייבוא של כל ה-headers המתאימים?

תבדוק גם את הסקופים שלך.

פורסם
  • מחבר

זה הקובץ main:

gcc נותן לי גם שגיאה ש s ללא שימוש...


#incluse "set.H"

void func(char *s){

if(strcmp(s,"read_set")==0)

{

read_set();

return;

}

if(strcmp(s,"print_set")==0)

{

print_set();

return;

}

if(strcmp(s,"union_set")==0)

{

union_set();

return;

}

if(strcmp(s,"intersect_set")==0)

{

intersect_set();

return;

}

if(strcmp(s,"sub_set")==0)

{

sub_set();

return;

}

if(strcmp(s,"halt")==0)

{

halt();

}

printf("No such command\n");

return ;

} int main(){

int i=1;

while(i==1){

char g[100];

printf("Enter command\n");

fgets(g,100,stdin);

g[strlen(g) - 1] = '\0';

char *s=strtok(g," ");

func(s);

}

return 0;

}

 

פורסם
  • מחבר

קובץ set.h



#include <stdio.h>

#include <string.h>

#include <stdlib.h>
#ifndef SET_H_
#define SET_H_
#define SIZE 16

typedef unsigned char set[SIZE];

set A,B,C,D,E,F;

void read_set();

void print_set();

void union_set();

void intersect_set();

void sub_set();

void halt();

set* checkname();

int checkbit1();

set* Initialize();

struct{

char *name;

set *s;

}sets[]={

{"a",&A},

{"b",&B},

{"c",&C},

{"d",&D},

{"e",&E},

{"f",&F},

{"A",&A},

{"B",&B},

{"C",&C},

{"D",&D},

{"E",&E},

{"F",&F},

{"#",NULL}

};

#endif

פורסם
  • מחבר

כן כי כתבתי את החלק הזה פה בתכנית זה כתוב בסדר

פורסם
  • מחבר

יש לי שגיאות כאלה:

implicit declaration of function 'func'

multiple definition of 'sets'

multiple definition of 'func'

undefined references of 'func'

לא יודע איך לפתור אותם...פעם ראשונה שאני מפצל תכנית ל 3 חלקים.

פורסם

ה-include guards צריכים להיות בראשית הקובץ.

פורסם
  • מחבר

זה?


#ifndef SET_H_
#define SET_H_


אם כן זה לא עזר...

ארכיון

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

דיונים חדשים