קבצי Header - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

קבצי Header


The-Devil

Recommended Posts

שלום לכולם

רציתי לדעת איך משתמשים בקובץ Header

למה הוא משמש אני יודע בערך- לייצג את הפונקציות

אבל אני לא מבין מאיפה הוא לוקח את הפונקציות עצמן

ולמה לא להשאיר את הכול בתוכנית הראשית

תודה

קישור לתוכן
שתף באתרים אחרים

הוא מכיל הצהרות על פונקציות ספריה

ברמה הבסיסית פונקציית ספריה היא פונקציה המגיעה עם הקומפיילר, דוגמאות לפונקציות כאלה הן printf,scanf,sqrt ועוד...

בשביל להשתמש בפונקציות הנ"ל התוכנית שלך צריכה לדעת מאיפה הן לקוחות, ומי ממש אותן (איפה כתוב הקוד שלהם)

ברמה הגבוה יותר זה רשימה של הצהרות על פונקציות ומבנה נתונים הממומשים בקובץ נפרד מהתוכנית שלך בהן התוכנית שלך משתמשת.

יש לזה בעיקרון 2 שימושים -

1. שימוש בפונקציות ספריה (string.h sddtio.h stdlib.h math.h ועוד רבים אחרים)

2. הוספה של יחידות גנריות (מתאימות להרבה שימושים) משלך.

דוגמא לשימוש השני הוא מימוש של ספריה גרפית שתאפשר לך לצייר עיגולים ומרובעים על המסך. לא תרצה כל פעם לכתוב את הקוד מחדש (או להדביק אותו לקוד שלך) כי זה יהיה מסובך ומכוער. לכן אתה יכול לממש את הפונקציות פעם אחת, לזרוק אותן לתוך קובץ C נפרד ולקשר בין התוכנית שלך לקובץ C עם קובץ H המכיל הצהרות על כל הפונקציות שמימשת בקובץ C.

הפוקנציות השייכות לקובץ XXX.H יהיו בקובץ XXX.C או XXX.O.

סיומת O הוא סיומת של קובץ Object. קובץ זה הוא שלב ביניים בקימפול של הקובץ C, הוא מכיל את כל הקוד שלו מקודד בבינארית ככה שאת הקוד עצמו אתה לא יכול לראות.

קישור לתוכן
שתף באתרים אחרים

הסבר מעולה Holy

תודה :D :D :D

אבל איך אני יוצר את הקבצים האלה??

אני סתם יוצר פונקציות ושומר עם הסיומות שאמרת?

ואחרי שאני שומר את הפונקציות אני צריך לשים גם בקובץ Header את השמות שלהם?

ויש פקודות מיוחדות לסוגי קבצים כאלה?

קישור לתוכן
שתף באתרים אחרים

אתה כותב פונקציה בתוך קובץ C, נגיד add.c

/* add.c */

int add(int a,int b) {

   return a+b;

}

כותב קובץ h עם אותו שם ושם אתה מצהיר על הפונקציה

/* add.h */

int add(int,int);

ולבסוף כותב תוכנית שתמשתמשת בקובץ הזה, אתה עושה לו include עם "" במקום <>, מה שמורה לקומפיילר לחפש אותו בספריה הנוכחית ולא בספריה בה שמורים כל קבצי ה-H של פונקציות הספריה

/* main.c */

#include <stdio.h>

#include "add.h"

int main() {

  int a,b;

  scanf("%d%d",&a,&b);

  printf("%d",add(a,b));

  return 0;

}

בנוסף לפונקציות אתה יכול גם להגדיר מבנים (struct) קבצים (ע"י define), משתנים משותפים למספר קבצים ועוד כל מיני דברים

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...