עבור לתוכן

GCC מקמפל C ב חפיף, איך אפשר לשנות את זה?

Featured Replies

פורסם

שלום לכולם.

לאחרונה גיליתי ש GCC לא ממש הולך לפי הדרישות של הסטנדרטים ובעיקר (מה שנקלתי בו כרגע) זה הגדרת משתנה לא בתחילת בלוק. נכון זה נוח אבל כשאני מנסה לקמפל את אותו קוד בקופיילר אחר (של MS לדוגמא) אני מקבל 20-30שגיאות בקשר לזה, אני כן משתדל להגדיר בלוקים ולהגדיר משתנים בתחילת בלוק אבל לפעמים יוצא שלא. אז איך ניתן להכריח את GCC לבדוק את הנושא? ניסיתי -ansi ו -pedantic אבל זה כבר הגזמה, למה שקומפיילר לא יתמוך בהערות שמתחילות ב //, לא בא לי לשנות כמויות של הערות בגלל זה.

תודה רבה מראש.

פורסם

// זו לא הערה סטנדרטית של C.

אתה צריך להשתמש ב- /* */

ומשתנים צריך להגדיר בתחילת בלוק מאותה סיבה.

אני מציע לך לסדר איפה שהוא נותן לך הערות, ובנוסף לזה, להכניס -Wall.

פורסם
  • מחבר

כן אני יודע, אבל לא הבנת אותי נכון.

אני כן רוצה שהוא יתן לי שגיאה אם אני מגדיר משתנה לא בתחילת בלוק, אני פשוט לא יודע מה הפקודה (יענו הפרמטר ל GCC), אז ניסיתי את -ANSI ו -PEDANTIC אבל זה מוגזם מידי עקב הסיבה שהוא גם מתלוננן על הערות, האם יש הפוקודת הללו הן אלה שאמורות להעיר גם על משתנים לא בתחילת בלוק? האם בכלל יש טעם לנסות לעמוד בסטנדרטים?

ואני כן משתמש ב -WALL

שוב תודה

פורסם

יש בהחלט טעם לעמוד בסטנדרטים.

כמו בהרבה דברים - קודם תדע מה החוקים ואיך לקיים אותם, ורק אז תשבור אותם.

הערות בסגנון // הם פשוט לא חלק מ-ansi C89. או שאתה עומד בסטנדרט או שלא (הן כן חלק מ-C99).

אתה יכול לחפש ב-gcc manual ואלי תמצא אופציות פרטניות יותר, אני בספק.

פורסם

-Wdeclaration-after-statement

פורסם
  • מחבר

תודה רבה לכולם :)

ארכיון

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

דיונים חדשים