שפת C/שלום עולם

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי


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



התוכנית הראשונה[עריכה]

פתח את עורך הטקסטים המועדף עליך (או סביבת הפיתוח שלך), וכתוב שם:

#include <stdio.h>

int main()
{
    printf("Hello world\n");
    
    return 0;
}

מקוד זה ניתן לייצר תוכנית המדפיסה על המסך את המילים Hello world.

הסבר הקוד[עריכה]

שורה 1[עריכה]

#include <stdio.h>

מוסיפים שורה זו לתוכניות שמבצעות פלט וקלט, כלומר, מתקשרות עם המשתמש דרך המסך והמקלדת.

בהמשך נראה שהשורה היא הוראה לקדם מעבד להכליל את הקוד בקובץ הנמצא בסוגריים (stdio.h במקרה הנ"ל) לשימוש בקוד הנכתב.

שורה 2[עריכה]

int main()

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

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

שורה 3[עריכה]

{

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

בהמשך נראה ששורה זו פותחת בלוק, כלומר אוסף הוראות או פקודות המהוות יחידת קוד אחת. במקרה זה הבלוק הוא של ההוראות השייכות לפונקציה main.

שורה 4[עריכה]

printf("Hello world\n");

שורה זו מדפיסה למסך את המילים "Hello world". (ה-n\ לאחר המילים מסמן מעבר לשורה חדשה) בהמשך נראה הסבר מפורט לשורה זו בפלט וקלט.

שורה 5[עריכה]

return 0;

שורה זו מודיעה למערכת ההפעלה שהכל התנהל כשורה.

בהמשך נראה ששורה זו קובעת את הערך המוחזר מהפונקציה main.

שורה 6[עריכה]

}

שורה זו מסמנת את סיום רצף הפקודות שאותו מבצעת התכנית.

בהמשך נראה ששורה זו סוגרת בלוק - במקרה זה, הבלוק של ההוראות השייכות לפונקציה main.

בניית והרצת התכנית[עריכה]

לאחר שכתבת את הקוד, בנה את הקוד לתכנית, והרץ את התוכנית. בניית הקוד והרצת התכנית משתנים בהתאם למערכת ההפעלה.

סביבות פיתוח מבוססות רשת[עריכה]

OnlineGDB[עריכה]

כתבו את השורות בקטע המרכזי של המסך, כך שייראה כבתמונה הבאה:

  • שימו לב לבחור את האופציה C בתיבת Language למעלה.
  • לחצו על המלבן הירוק בעל המשולש הלבן בחלק העליון של המסך.
  • החלק התחתון ייראה את הפלט.

סביבות פיתוח בחלונות[עריכה]

כדאי לדעת:

ברוב סביבות הפיתוח בחלונות, הרצת תוכנית כזו תפתח חלון אשר ייסגר מיד לאחר סיום התכנית, דבר שעלול להקשות על קריאת הפלט. אם הדבר אכן קורה, הוסף שתי שורות לקוד, שיראה עתה כך:
#include <stdio.h>
#include <conio.h>/*שורה זו*/
int main()
{
    printf("Hello world\n");

    getchar();/*ושורה זו*/

    return 0;
}

לאחר הוספת שורות אלו, החלון יישאר פתוח עד שתקיש תו כלשהו. כך תוכל לראות את הפלט לפני שהחלון ייסגר.

Microsoft Visual Studio[עריכה]

אם אתם משתמשים ב-Microsoft Visual Studio, תוכלו לפעול לפי הצעדים הבאים. על אף שקיימים הבדלים בין גרסות שונות, הם אינם משמעותיים. בגרסה 2005 ניתן לעשות זאת כך:

  • מיזם חדש – כנסו לתפריט File → New → Project...‎‏. מצאו תחת קטגוריה "Visual C++‎" את סוג המיזם "Win32 Console Application" ובחרו אותו. הזינו שם למיזם ואת המסלול בו תיווצר התיקיה של המיזם. ניתן להוריד את הסימון "Create Directory for Solution", על מנת שתיווצר תיקייה אחת פחות. לחצו על OK. באשף שיפתח, עברו ל-Application Settings או לחצו על Next. בחלון זה סמנו את "Empty project" וסיימו עם לחיצת Finish. כעת נוצרה לכם תיקייה במסלול שהזנתם עם שם המיזם ובה קבצים של המיזם; כרגע הוא ריק.
  • יצירת קובץ C חדש – כדי ליצור קובץ C חדש, כנסו לתפריט Project → Add New Item...‎. מהחלון שנפתח בחרו את סוג הקובץ "C++ File" והזינו את שם הקובץ (לדוגמה main.c), זכרו להוסיף את הסיומת "‎.c" כדי שהקובץ יהודר כתוכנית C ולא כתוכנית C++‎.
  • הוספת קובץ C קיים – כדי להוסיף קובץ C קיים, רצוי תחילה להעתיקו לתיקיית המיזם. לאחר מכן יש לבחור מהתפריט Project → Add Existing Item...‎. בחלון שיופיע, יש לבחור את הקבצים שברצונכם להוסיף.
  • עריכת קוד – על מנת לערוך את אחד מקבצי המיזם, יש ללחוץ עליו פעמיים בחלון "Solution Explorer".
  • הידור והרצה – כדי לבנות את המיזם (להדר ולקשר), יש לבחור את Build → Build Solution. אם ההידור יעבור בהצלחה יווצר קובץ הרצה בתיקיית Debug בתוך תיקיית המיזם. כדי להריץ תחת מנפה שגיאות יש לבחור את Debug → Start Debugging. אם יהיו שגיאות בזמן ההידור, הן תופענה בחלון Output או Task List. לחיצה כפולה על שגיאה תביא אותכם לשורה בה הייתה השגיאה.

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

כברירת מחדל מהודרת גרסת Debug של המיזם. בגרסה זו, המהדר אינו עושה אופטימיזציה; בנוסף, הוא משאיר מידע נוסף בקובץ ההרצה החיוני למנפה שגיאות, דבר המגדיל מעט את קובץ ההרצה. כאשר תרצו להדר גרסה סופית של המיזם (כדי להפיצו למשל), תוכלו לבחור ב-Release במקום Debug (בתוך תיבה על סרגל הכלים הראשי).

כאשר תרצו להקטין את נפח המיזם (למשל כשתגבוהו או תשלחוהו במייל), תוכלו לנקותו מתפריט Build → Clean Solution או למחוק ידנית את תיקיות ה-Debug וה-Release ואת הקבצים עם הסיומות: ncb, suo, user, aps (תחילה יש לסגור את סביבת הפיתוח).


כדאי לדעת:

אם אתם משתמשים בVisual Studio, שלושת קיצורי המקשים הבאים יעזרו לכם מאוד:

F7 - Build Solution F5 - Start Debugging Ctrl+F5 - Start Without Debugging (אם אתם משתמשים בזה, אז אתם לא צריכים להשתמש בgetch(), כי ויז'ואל סטודיו עושה את זה בשבילכם.

Dev C++‎[עריכה]

Dev C++‎ היא תוכנת קוד פתוח לפיתוח ב C\C++‎. ניתן להוריד אותה מכאן.

בגרסה 4.9.9.2 ניתן לפעול כך:

  • מיזם חדש - כנסו לתפריט File → New → Project. מצאו תחת הכרטיסייה "Basic", את סוג המיזם "Empty Project" ובחרו אותו. בחרו "C Project", ואף רצוי לסמנו כשפת ברירת המחדל ע"י סימון התיבה "Make Default Language". לחצו Ok לאישור. נפתח לכם חלון בו תוכלו לבחור היכן לשמור את המיזם ואת שמו. בחרו תיקייה ולחצו Save לסיום. כעת נוצר לכם קובץ מיזם בעל סיומת ‎.dev בתיקייה בה בחרתם לשמור את המיזם.
  • יצירת קובץ C חדש - ליצירת קובץ C חדש בחרו בתפריט Project → New file‎. כעת נפתח לכם דף בו תוכלו לכתוב את התוכנית שלכם.
  • הוספת קובץ C קיים – כדי להוסיף קובץ C קיים, רצוי תחילה להעתיקו לתיקיית המיזם. לאחר מכן יש לבחור מהתפריט Project → Add to Project‎. בחלון שיופיע, יש לבחור את הקובץ שברצונך להוסיף.
  • עריכת קובץ - על מנת לערוך אחד מקבצי המיזם, לחצו עליו לחיצה כפולה בכרטיסייה "Project" שבצד שמאל.
  • הידור והרצה - על מנת להדר ולהריץ את התוכנית, בחרו בתפריט Execute → Compile & run. בהרצה הראשונה תוכלו לבחור את שם קובץ ההרצה ואת מיקום שמירתו. על מנת להריץ בלבד מבלי להדר את כל התוכנית שוב, בחרו בתפריט Execute → run. הרצה בלבד תוכל להתבצע רק לאחר שהתוכנית הודרה לפחות פעם אחת. אם ההידור עבר בהצלחה, נוצר לכם בתיקיית המיזם קובץ בשם שבחרתם עם סיומת ‎.exe אותו תוכל להריץ ישירות מהמחשב. אם ישנן שגיאות, הן תופענה לכם בחלון בתחתית התוכנה. לחיצה כפולה על שגיאה תביא אתכם לשורה בה הייתה השגיאה.

לא צוינו כאן קיצורי המקשים, מכיוון שהם יכולים להשתנות בגרסאות הבאות, לכשיצאו כאלה.

סביבות פיתוח אחרות[עריכה]

השתמשו בסביבת הפיתוח שלכם בכדי להדר את הקוד. אם ההידור יעבור בהצלחה, יווצר קובץ מתאים בעל סיומת ‎‎.exe אשר יהיה ניתן להריצו.


פרק זה לוקה בחסר. אתם מוזמנים לתרום לוויקיספר ולהשלים אותו. ראו פירוט בדף השיחה.



עורך טקסטים וgcc[עריכה]

שמור את קוד התכנית בתיקיה שבה יש לך ההרשאות המתאימות. נהוג להשתמש בסיומת c לקבצי קוד כגון זה שכאן. נניח ששמרת את הקוד בקובץ שנקרא hello_world.c. כעת עלינו לבנות את הקוד ולהפכו לתכנית. פתח מסוף וכתוב:

gcc hello_world.c -o hello_world.out

אם ההידור יעבור בהצלחה, יווצר קובץ בשם hello.out. ניתן להריץ את התכנית ע"י כתיבה בטרמינל:

./hello_world.out

ותראה את המילים Hello world מודפסות.


כדאי לדעת:

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

באופן כללי בונים קוד בצורה:

gcc <source_file> -o <executable>

כאשר source_file הוא שם קובץ הקוד, וexecutable הוא שם קובץ התוכנית המתקבלת (ראה שימוש בסוגריים משולשים בסימונים בספר). מריצים בצורה:

./<executable>

כאשר executable הוא שם קובץ התוכנית.


עכשיו תורכם:

נניח ששמרת את הקוד בקובץ my_first_program.c, ואתה רוצה לבנות ממנו את הקובץ it_runs.out. כיצד תבנה, ומה תריץ?
פתרון

כדי לבנות, יש לכתוב:

gcc my_first_program.c -o it_runs.out

כדי להריץ, יש לכתוב:

./it_runs.out


הפרק הקודם:
הכנה
שלום עולם
תרגילים
הפרק הבא:
הערות