עבור לתוכן

פרמטר אופציונאלי ב- C. כיצד?

Featured Replies

פורסם

איך כותבים נכון?

הקוד להלן לא עובר קומפילציה

 
void Func( char* s = "dudu" )
{
//todo
}

int main()
{
Func();
}

פורסם

"לא עובר קומפילציה" זה חסר משמעות.

תגיד מה הייתה השגיאה.

פורסם
  • מחבר
illegal initialization for parameter `s'

פורסם

זו כל ההודעה? בלי שום פרטים נוספים?

בעקרון, מחרוזות hard coded (כמו "dudu") הן מטיפוס *const char. אז נסה לעשות את s מהטיפוס הזה.

פורסם

C לא תומכת בערכי ברירת מחדל לפרמטרים. תוודא שסיומת הקובץ היא .CC או .CPP (תלוי בקומפיילר).

פורסם


void Func (int num)
{
dosomething...
}


void Func ()
{
Func (5);
}

משהו כמו זה לא יעבוד?

פורסם

טוב נו, לא נגעתי ב-C כבר 10 שנים :)

פורסם
  • מחבר

שיניתי ל- const (ראה קוד להלן) ואני מקבל את אותה השגיאה

(אלא אם כן מוסכם שב- C אין ערכי ברירת מחדל)

 

void Func( const char* s = "dudu" )
{
//todo
}

int main()
{
Func();
}

פורסם
  • מחבר

תודה :yelclap:

פורסם

למקרה שלא היה ברור, ב-C אין אבל ב-++C יש.

ארכיון

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

דיונים חדשים