שאלה לגבי prototypes ב C

nocgod

New member
שאלה לגבי prototypes ב C

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

האם מישהו מכיר כלי, דרך, שיטה, אולי איזה פיצ'ר בVS2012 או 10 שיודע לקחת פונקציות מוכנות ולעשות להן פרוטוטייפים תוך כדי העתקה של הקוד שלהן מתחת לmain?

תודה על העזרה/טיפים
 

BravoMan

Active member
לא מכיר כלי כזה, אבל קח בחשבון שאם אתה כבר

כותב בצורה מבולגנת, אף אחד לא מחייב אותך להזיז את הפונקציות מתחת ל-main או לכתוב הכרזה על כל אחת מהן.

פשוט תעתיק למעלה את שורת הכותרת של הפונקציה שעושה בעיות, ונפתר העניין (ה-prototype לא חייב להיות בתוך קובץ h).

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

ממליץ בחום לחשוב שוב על זרימת הקוד.

בהצלחה!
 

nocgod

New member
האמת שאין לי קריאות מעגליות...

זה בדוק (אומנם אני n00b אבל לא עד כדי כך...)
פשוט עשיתי קוד מבולגן קצת מבחינת סידור הפונקציות...אני חייב להגיש את זה בקובץ אחד ככה ש.h לצערי לא בא בחשבון.
אני אסדר את זה כבר ידנית כנראה...
 
An unknown c99 secret for bad practice

You can hint the compiler using name and return type only:

int foo();
void bar();

int main()
{
return foo();
}

int foo()
{
bar(7, 3.14);
return 42;
}

void bar(int k, double d)
{
printf("hello, bar(%d,%f)!\n", k, d);
}

So if you insist on being a bad programmer, you have more options now!
 

nocgod

New member
אני אתייחס לזה כביקורת בונה

אומנם מאוד מאוד נוקבת ורעה אבל בונה...
בגדול כשכתבתי C או ++C בעבר הייתי מחלק את הקוד לקיבצי header וקיבצי implementation
במקרה הזה חשבתי על העבודה כל כך הרבה זמן שפשוט ישר קפצתי לקוד (והוא זרם לי עד הטיפה האחרונה) פשוט בגלל שאני צריך להגיש את זה בקובץ אחד (לא יודע למה...) משום מה שכחתי לכתוב קודם הprototypes ומתחת לmain את המימושים עצמם.

אגב אני מודע לדרך הזאת להיות מתכנת רע, ובחיים שלי לא כתבתי ככה, או חשבתי אפילו על לכתוב ככה...
 

selalerer

New member
הסיבה שאין פיצ'ר כזה, היא שאף אחד לא באמת

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


בגדול נראה לי נורא קל לסדר את זה:
- מקמפלים.
- הקומפיילר מתלונן שהוא לא מכיר את פונקציה X.
- הולכים לפונקציה X (עושים ctrl+f, מקישים X ואז ENTER)
- מעתיקים את השורה הראשונה שלה (home אז shift+end ואז ctrl+c או ctrl+ins).
- הולכים לתחילת הקובץ (ctrl+home).
- מדביקים את השורה (ctrl+v או shift+ins).
- הולכים לסופה של השורה (end).
- שמים נקודה פסיק.
- חזור עד שאין טעויות קומפילציה (או לפחות עד שיש טעויות קומפילציה אחרות).
 

ihovav

New member
האמת שלכתוב כזה דבר זה ממש לא מסובך

אבל יקח לך פי כמה וכמה מפשוט להעתיק ידנית
 

selalerer

New member


אתה יכול להקליט מקרו דיי בזריזות, לפחות לחלק מהפעולות.

להפוך את זה ממש לפעולה מלאה ואמינה ידרוש יותר עבודה.
 
למעלה