اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

سرفایل‌های climits و cfloat

0 امتیاز
253 نمایش

سرفایل‌های climits و cfloat تو هسته‌ی اصلی C++ وجود دارن؟ یعنی من اگه برنامه‌مو با اینا بنویسم مطمئن هستم که تو همه‌ی کامپایلرها جواب می‌ده؟ یا باید سعی کنم این کتابخونه‌ها رو حتمن به سورس لینک کنم تا بتونم تو یه کامپایلر دیگه ازش استفاده کنم؟

برنامه‌ای که تست نشده کار نخواهد کرد (Stroustrup, Bjarne)
پرسیده شده جمعه ۱۰ آذر ۱۳۹۱ در C++ توسط CPP_Crawler3  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

1 پاسخ

0 امتیاز

این دو تا سرفایل مقادیری که برمی‌گردونن بسته به ماشین و کامپایلر (باهم‌دیگه) هست. بنابراین هم بستگی به پردازنده داره هم پیاده‌سازی زبان C++ که داریم ازش استفاده می‌کنیم.
یعنی ممکنه که در یک ماشین یک پیاده‌سازی C++ برای INT_MAX مقدار 2^15-1 و در یک پیاده‌سازی دیگه مقدار 2^31-1 رو برگردونه.
البته بعضی از مقادیرش این طوری نیست. مثلاً CHAR_BIT یک مقدار منحصر به پردازنده است و نمی‌شه که دو تا پیاده‌سازی مقدارهای مختلفی از اون رو روی یک ماشین برگردونن.
به هر حال وقتی برنامه‌ای با استفاده از این سرفایل‌ها نوشته بشه قابل حمل باقی می‌مونه. یعنی بعد از کامپایل در ماشین مورد نظر با یک کامپایلر نتیجه‌ی اشتباهی تولید نمی‌کنه. منتها باید در هر ماشین کد دوباره کامپایل بشه.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده یکشنبه ۱۸ فروردین ۱۳۹۲ توسط prodo