28-01-2012, 22:11
|
|
|
|
חבר מתאריך: 14.12.09
הודעות: 9,751
|
|
סטודנט שנה שניה, ועדיין לא למדת לחפש בגוגל?
לדעתך אם אני מצפה מאנשים לחפש בגוגל זו התנשאות?
אם אני מצפה מאנשים שעונים על שאלות ב-CPP לדעת את הבסיס של הבסיס של התחביר זו התנשאות?
מצער מאוד.
טוב, קבל קורס מזורז ב-CPP, לסטודנטים שנה 2:
התקן אומר שכשעושים #include <> או #include "" הדרך שבה מחפשים את הקבצים היא implementation-defined (וכן: אם לא מוצאים את הקובץ בדרך שבה מחפשים בגרסה עם המרכאות, מנסים שוב את החיפוש בדרך עם הסוגרים הזוויתיים).
בפועל, ברוב הסביבות, כלל האצבע אומר שהגרסה עם הסוגרים הזוויתיים מחפשת בתיקיה של קבצי האינקלוד שבאו עם הקומפיילר לכל הפחות (כי כל האינקלודים הסטנדרטיים אמורים לעבוד), ואולי בספריות נוספות שהמשתמש הגדיר, בעוד שהגרסה עם המרכאות מחפשת בתיקיה הנוכחית, ואולי בתיקיות נוספות שהמשתמש הגדיר.
מגלים את זה בקלות אם מחפשים בגוגל "#include quotes vs brackets". מפתיע.
http://lmgtfy.com/?q=%23include+quotes+vs+brackets
התוצאה הראשונה בחיפוש נותנת את ההסבר הזה:
http://objectmix.com/c/39606-includ...tml#post_160600
הקישור השני נותן את הציטוט הרלבנטי מהתקן של C (ב-CPP זה אותו דבר בתכלס):
http://stackoverflow.com/questions/...-filename#77092
הקישור הרביעי נותן את התיאור במקרה של Visual C++, שזה מה שפותח האשכול משתמש בו:
http://msdn.microsoft.com/en-us/lib...v=vs.80%29.aspx
והקישור השישי נותן את התיעוד במקרה של GCC:
http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html
(לא רלבנטי לשאלה, אבל מראה שכלל האצבע פועל.)
מי שיודע את זה, מבין שכשעושים אינקלוד עם מרכאות, הכוונה היא לקובץ ששייך לתוכנה הנוכחית, ולא לקובץ סטנדרטי של המערכת (כי אז מתכנת נבון במידה מזערית היה משתמש בגרסה עם הסוגרים הזוויתיים). מכאן נובע, שסביר להניח שלמישהו אחר אין את הקובץ הזה. אין מה להיות מופתע מזה. היה מפתיע אם כן היה אצל מישהו אחר בדיוק הקובץ הנכון עם הקוד הנכון בתוכו...
_____________________________________
(קרדיט למרשי)
אמר לה ינאי מלכא לדביתיה אל תתיראי מן הפרושין ולא ממי שאינן פרושין אלא מן הצבועין שדומין לפרושין שמעשיהן כמעשה זמרי ומבקשין שכר כפנחס
אמר פסטן: שניהם גרועים, אבל עדיף להיות טיפש מאשר שקרן.
|