۱۳۸۹ فروردین ۷, شنبه

اندازه‌ی int در سی/سی++!

شما میدونین اندازه‌ی int، short و long توی سی/سی++ چقدره؟!! من تا همین چند روز پیش فکر می‌کردم میدونم ولی فهمیدم که نمیدونم!

خیلی از کسایی که توی کامپایلرهای تحت داس سی یاد میگیرن و به حرف استاداشون زیادی اعتماد میکنن فکر میکنن int  دو بایتیه! اون‌هایی هم که شانس دارن و استادشون یکمی به‌روز تره و تحت ویندوز برنامه‌نویسی یاد میگیرن فکر میکنن اندازش ۴ بایتیه...

من براساس چیزایی که قدیما خونده بودم این توی ذهنم بود که اندازه‌ی short و long تقریبا همه‌جا ثابته و ۱۶ و ۳۲ بیته، اما int کاملا وابسته به سیستمه (در واقع وابسته به کامپایلر) و اندازش با اندازه‌ی واحد محاسباتی cpu (معمولا رجیسترهای عدد صحیح cpu) یکیه. در نتیجه انتظاری که داشتم این بود که توی سیستم ۶۴ بیتی و با یه کامپایلر ۶۴بیتی، اندازه‌ی int هشت بایت باشه (و به طرز مسخره‌ای از long بزرگ‌تر باشه!). همون چند روز پیش داشتم روی یه کد کارمی‌کردم که خلاصه یهو متوجه شدم که intم ۴ بایتیه (با این که توی یه لینوکس ۶۴ بیتی بودم). این شد که فهمیدم ای دل غافل! ظاهرا بحث اندازه‌ی این متغیرها به این سادگی‌ها هم نیست. خلاصه بعد از یه چرخی توی اینترنت و به کمک ویکی‌پدیا و این صفحه (که مزایای سیستم LP64 رو توضیح میده) اطلاعات کامل‌تری به‌دستم رسید به این شرح:

۱. تنها چیزی که استاندارد سی مشخص کرده اینه (این ابهام با توجه به ملاحظاتی صورت گرفته!): اندازه‌ی short حداقل ۲ بایته و از int بزرگ تر نیست، اندازه‌ی int هم از long بزرگ‌تر نیست. اندازه‌ی long حداقل ۳۲بیت و اندازه‌ی long long هم حداقل ۶۴ بیته. همین! مثلا ممکنه توی یه سیستم هر ۴ تای اینا ۶۴ بیتی باشن یا حتی بیشتر.

۲. توی سیستم‌های ۶۴ بیتی مدل‌های مختلفی استفاده شده. توی ویژوال سی ویندوز اندازه‌ی اون سه نوع اصلی با سیستم‌های ۳۲ بیتی یکیه، یعنی short دو بایت و اون ۲تای دیگه ۴ بایتند. برای ۶۴ بیت باید از long long استفاده کرد. البته اشاره‌گر ها ۸بایتی هستند توی ۶۴بیتی‌ها کلا. این میشه مدل LLP64

توی لینوکس و خیلی از یونیکس‌ها (کامپایلرهاشون) از مدل LP64 استفاده میکنند: short دو بایت، int چهار بایت و long هشت بایت.

یه مدل ILP64 هست که توی اون int و داده‌های بزرگ‌تر همه ۸ بایتی هستند. و یه مدل SILP64 که توش حتی short هم ۶۴ بیتیه.

خلاصه توی هیچ کدوم از سیستم‌های ۶۴ بیتی که من فعلا ممکنه باهاشون سروکار داشته باشم int هشت بایتی نیست! با توجه به این که زمان زیادی در اشتباه به سر می‌بردم گفتم بزنم شاید برای بقیه هم خوب باشه!!

البته کلا اگه اندازه مهمه، بهترین راه استفاده از انواع تعریف‌شده توی stdint.hه مثل int32_t که داده با اندازه‌ی دقیق میده، یا int_least32_t که کوچک‌ترین داده که حداقل ظرفیت ذکر شده رو داره میده و یا int_fast32_t که سریع‌ترین نوعی که به عقلش میرسه با حداقل اندازه ی گفته شده رو میده. برای ذخیره‌ی اشاره گر ها هم توی یه متغیر عددی باید از intptr_t استفاده کرد.

۱۳۸۹ فروردین ۵, پنجشنبه

سفر

از عمارت‌های باغ فین کاشان

جای شما خالی ۲شنبه و ۳شنبه یه نیمچه سفری رفتیم ابیانه و کاشان و برگشتیم. اب و هوا که خوب بود، مسیر هم که بد نیست؛ مخصوصا مسیر ابیانه تکه‌های سرسبز قشنگی داره. هر چند بیابونم قشنگی خاص خودش رو داره! خلاصه یه سر رفتیم و برگشتیم. البته حیف شد فرصت نشد به نیاسر هم سری بزنیم، آبشار قشنگی داره.
 

















فقط توی راه برگشت... خدا خیلی بهم رحم کرد. خانوادگی رفته بودیم با ۲ تا ماشین که یکیش دست
من بود و منم ماشین عقبی بودم. تو مسیر برگشت یهو دیدم کنترل ماشین همچین یکمی سخت شده و هی منحرف میشه، اول گفتم شاید سرعت برای این جاده زیاده! سرعت رو کم میکردم خیلی بهتر میشد گفتم پس حتما مال همونه، ولی خب بازم کنترل ماشین سخت بود و بدجوری استرس گرفته بودم (ماشین جلویی هم یکمی جلو زده بودو دیگه ما رو نمیدیدن). اینقدرم حواسم به کنترل ماشین بود که دیگه فکرم هم کار نمیکرد... خلاصه عقلم به هر چیزی رسید جز پنجر بودن یکی از تایرها! فقط خوبیش این بود که جاده ۳بانده بود و منم وسط میروندم، وگرنه فکر کنم از جاده زده بودم بیرون و احتمالا چپ کردن و .... و خدا رو شکر با کسی هم تصادف نکردم. یه مدت به همین صورت گذشت تا این که یهو ماشین شروع کرد به لاق لاق کردن! و سرعتش کم شد؛ دیگه زدم کنار. یکی از لاستیک‌های عقب ترکیده بود. کلی خوشحال شدم که اتفاق دیگه‌ای نیفتاده بود! بعد از خطری که گذشته بود نشستم و چرخ و عوض کردم و دیگه رسیدیم خونه. شانس آوردم تجربه‌ی دوم تعویض چرخم بود... (اولیش رو گذاشتم سر فرصت بگم یکم بخندین!).

واقعا خوشحالم که اتفاق بدی نیفتاد. مخصوصا این چند روزه چندتا خبر تصادف منجر به کشته شنیدم. حالا باز خود آدم یه چیزیش بشه، خودشه؛ ولی اگه جون چندتا آدم دیگه هم دستت باشه خیلی ترسناک میشه و من ترجیح میدم اگه قراره تصادف کنم تنهایی تصادف کنم! یه چیز دیگه هم هست... همین چند وقت پیش داشتم فکر میکردم که من واقعا چقدر کار دارم تو این زندگی؟!! ولی بعد از این قضیه که فکرشو کردم دیدم اگه هیچ کاریم نداشته باشم حداقل برای مردن که باید اماده بشم! چون واقعا الان آمادگیشو ندارم!! و این یکی از بزرگ‌ترین اشتباهات آدم میتونه باشه. مثلا همین رانندگی، کلی کشته‌ی عابر پیاده داره که شاید خیلیاشونم هیچ تقصیری نداشته باشن... :(

خب فعلا که زنده‌ام!
***
راستی بارون دیشب چه چسبید! P:

۱۳۸۹ فروردین ۱, یکشنبه

۱۳۸۸ اسفند ۲۹, شنبه

قبل از عید!


خب الان که هنوز زوده من پیام تبریک بدم، پس نمیدم! P: اون مال بعد. الان به عنوان روز اخر سال دارم می‌نویسم نه اول بهار.
یادتونه گفتم حال و هوای عید ندارم؟! خب بعد از این که اومدم خونه یواش یواش پیدا کردم. مخصوصا دیروز که با توجه به تهدیدهای مادر محترم مبنی بر تبدیل شلوارهای قدیمی من به شلوارک و همچنین ایجاد یک سری تغییر و تحولات در پیرهن‌هام (مثلا حذف استین‌ها، ایجاد یک سری پنجره، تبدیل به دستگیره و کهنه برای تمیز کردن سفره و ...) رفتیم برای خرید عید که حداقل رضایت نسبی فراهم بشه :) تجربه نشون داده که این جور تهدیدهای مادر رو نمیشه جدی نگرفت و احتمال عملی شدنش بالای ۶-۷۰ درصده! البته الان هم خیلی فرقی نکرده و دیر یا زود این بلا سر یک سری از لباس‌های قدیمیم میاد ولی خب حداقل جایگزین مناسبش هست :) هر چند بازم از زیر خرید یه مورد در رفتم ولی این طور که بوش میاد دیر یا زود باید یکیشو بخرم!

پس از نظر حال و هوای عید یه پیشرفت‌هایی داشتم! اما در مورد خودم، اول از همه از همه‌ی دوستانی که به فکرم بودند صمیمانه تشکر میکنم خیلی زیاد :) البته راستش اونقدرا هم حالم بد نبود ولی خب بعضی وقتا ادم بدش نمیاد یکمی خودشو لوس کنه دیگه P: البته مشکلاتی بود و هست ولی خب... درسته که هر کس دلایلی برای ناراحتی و خوشحالی داره، و بعضی وقتا ناراحتیا خیلی اذیت میکنند ولی حقیقت اینه که معمولا دلایل شادی خیلی بیشتر از دلایل ناراحتی هستند. یک چیز هم هست: آدم نباید هیچ وقت خیلی ناراحت یا خیلی خوشحال بشه (البته برای مدت کم من این حق رو به هر کسی میدم :)‌)، اگه زیاد ناراحت بودی بد نیست یه نگاهی به کسایی بندازی که خیلی وضعشون بدتر و ناراحت‌کننده‌تر از خودته، و اگه زیادی خوشحال و مغرور شدی میتونی به کسایی نگاه کنی که خیلی وضعشون بهتر از خودته. خب خدا یه عالمه چیز خوب به من داده که خیلی خیلی هم به خاطرش خوشحالم و ازش ممنون، دیگه خیلی بی‌انصافیه که انتظار داشته باشی به تو فقط چیزای خوب بده دیگه. هر چند بعضی اتفاقا خیلی ناراحت کننده هستند ولی خب... کافیه یه مقداری وسیع‌تر نگاه کنی. وقتی به یه سری خطرایی که از بیخ گوشت میگذره دقت کنی، می‌بینی که همین که الان زنده و سالمی خودش خیلیه! شاید نداشته‌هایی باشه که خیلی اذیتم کنه، ولی چیزای زیادی دارم که از دست دادنشون خیلی بیشتر ناراحت کنندست...

خلاصه میگن زندگی ۱۰۰ سال اولش سخته. خب اگه ادم به خدایی و اون دنیایی عقیده داشته باشه می‌بینه که واقعا هم همینه. تو این چند سال آدم به فکر اون دنیاش باشه خیلی مهم‌تره تا فکر کردن به ناراحتیا و خوشحالیاش... حالا یکمی سختی کشیدن دیگه این حرفا رو نداره. تازه بعضی ناراحتیا شاید اگه پیش نیاد، بعدا اتفاقای خیلی ناراحت کننده تری پیش بیاد. شاید ناراحت باشی که فلان چیزو نداری، ولی ممکنه اگه اون رو داشته باشی باعث اتفاقای خیلی ناراحت کننده تری بشه

البته اینایی که گفتمو تقریبا همه میدونیم! حتی خودمم اون موقعی که اون حرفا رو مینوشتم اینا رو میدونستم، حتی قبلشم که فکر میکردم بنویسم و غصه میخوردمم میدونستم... ولی خب بعضی وقتا ادم دلش میخواد یکمی ناراحت باشه، فکر نکنم خیلی اشکالی داشته باشه که نه؟! بالاخره بعضی وقتا آدم زیادی دلش پر میشه :)

راستی حس میکنم تازگی یکمکی چاق شدم! البته حالا فعلا جا دارم تا به وزنی که میگن مناسب قدمه برسم ولی خب نگران شدم نکنه یهو زیاد بشه وزنم P: البته فکر کنم همش تقصیر این غذاهای دانشگاهه و یه مقدار کم شدن تحرکم. سعی میکنم چبران کنم!

چند روز پیش داشتم فکر میکردم شاید بد نبود کلاس‌های اسکی که تو دانشگاه تبلیغ کرده بودنو میرفتم. اگه باز فرصتی شد شاید برم یه اسکی هم یاد بگیرم بدک نیست. باید جالب باشه :)

متن که زیاد میشه عذاب وجدان می‌گیرم! برم تا بعد اگه عمری بود :)
فعلا

۱۳۸۸ اسفند ۲۶, چهارشنبه

تعطیلات

من به صورت غیرمنتظره‌ای امروز (۳شنبه!) اومدم اصفهان و تعطیلاتم توی خونه شروع شد :) قرار بود از جمعه بیام ولی خب برنامه عوض شد. امروز اکثرا خواب بودم چون دیشب اصلا تو اتوبوس خوابم نبرد.

گفتم دیشب، یاد فیلمش افتادم! اول که تبلیغات فیلم‌ها شروع شد، یه سری فیلم جالب خارجی تبلیغ کرد و من تو دلم گفتم نامردا فیلمای خارجی تبلیغ میکنند اما آخرش یه فیلم ایرانی اونم از نوع دربه داغون میذارن. چون چند سالی بود که توی اتوبوس‌ها فیلم خارجی ندیده بودم. آخرین فیلمی هم که توی اتوبوس دیدم فیلم استثنایی «به روح پدرم» بود! این فیلم واقعا به درد نخوره (یک فیلم بدون هیچ قصه‌ی قابل توجه و فقط به عنوان یک فیلم خنده دار که چندان به دل آدم نمی‌چسبه)، حتی برای من که فکر کنم اصولا به صورت «تخصصی» از فیلم هیچی سر در نمیارم! و البته کلا هم هیچ علاقه‌ای به این قضیه (تشخیص خوبی و بدی فیلم به صورت تخصصی) ندارم، چون به نظرم اگه یه کار واقعا هنری باشه هر کسی باید هنرش رو درک کنه؛ و تخصص فقط باید به این درد بخوره که دلایل قشنگ بودنش رو مشخص کنه (البته شاید باز دلیلش اینه که من از این چیزا سر در نمیارم).

خلاصه همین‌طور که داشتم تو دلم غر می‌زدم فیلم شروع شد. باورم نمیشد، فیلم خارجی بود! یکی از همون فیلم‌هایی که توی تبلیغات بود و تصمیم گرفته بودم حتما از مسعود بگیرمش: بنجامین باتن (اگه درست نوشته باشمش!). به طور کلی فیلم قشنگیه با قسمت‌های لطیف احساسی... که اصلا با کلیشه‌های عشقولانه‌ی خیلی از فیلم‌های ایرانی قابل مقایسه نیست! البته توی فیلم‌های ایرانی هم فیلم‌های خوب‌تری پیدا میشن، هر چند من از یه سری از اونام خوشم نمیاد... سلیقست دیگه مجبور که نیستم!

خب زیاد شد! قصد داشتم یه چیز دیگه بنویسم و یه مقداری در مورد تغییرات حالم بنویسم، ولی میگذارمش برای دفعه‌ی بعدی که فردا یا پس‌فردا می نویسم. ولی به طور کلی بهترم، البته شرایط فرقی نکرده ولی خودم فرق‌هایی کردم که میگم. تم بلاگ‌هامم عوض کردم؛ هر چند لزوما قشنگ نیست ولی خب تنوعش بدک نیست که ؛) این بلاگر هم خیلی تم مناسب فارسی نداره، عکس‌هایی هم که آپلود میکنم اغلب فیلتر میشن که باعث شد تصمیم بگیرم از این به بعد عکس‌ها رو توی همون وردپرس آپلود کنم. کلا وردپرس رو خیلی بیشتر دوست دارم و تنها دلیلم برای اومدن این‌جا این بود که توی پروفایل یاهوم نوشته‌های جدیدم بیاد. ولی امروز متوجه شدم که با قابلیت publicize وردپرس اون کار رو هم میشه کرد. شاید بلاگ فارسیمم انتقال دادم اون‌جا! کلا از نظر امکانات و راحتی وردپرس از خیلی سرویس‌های دیگه بهتره.

شب بخیر!

۱۳۸۸ اسفند ۱۸, سه‌شنبه

این روزها!

۱. هنوز اصلا حس و حال عید نگرفتم! :( البته هوای بیرون خوبه و حس خوبی به آدم دست میده، به شرطی که حواسم بهش باشه!! خرید عید و خونه تکونی و اینا؟ الان که اصلا دل و دماغش رو ندارم...
۲. یعنی میشه این ترم (ترم پیش!) هم یه جورایی تموم شه که خیلی داغون نباشه؟! تقریبا منظورم به خیر و خوشی تموم شدنه!
۳. امیدوارم فردا مثل یه بچه‌ی خوب بشینم پای مشق و پروژه‌ درسیم!
۴. یه چیز دیگه هم هست که به هیشکی نگفتم؛ فقط امیدوارم به خیر بگذره، یعنی امیدوارم خدا دلش نیاد که ...
۵. اگه اون بالایی به خیر نگذره فکر کنم همچین حالم خراب‌تر بشه!
۶. اگه به خیر بگذره، امیدوارم بعدش بتونم تصمیم درستی بگیرم. البته در هر صورت امیدوارم بتونم بعدش تصمیم درستی بگیرم!
۷. یعنی بعد ارشد چی کار باید بکنم خوبه؟! چی کار میتونم بکنم؟!! این طور که من دارم پیش میرم به نظر نمیاد ارشدی که میگیرم به دردی بخوره! شاید از اول رفتم ارشد!!
۸. کیست مرا یاری کند؟!
۹. خواستم یه پست شادتر بزنم ولی آخرش نتونستم! بعضی وقت‌ها دیگه خیلی سخت میشه... گذاشتمش برای بعد
۱۰. چرا من این‌جوری شدم؟ همش تقصیر خودمه؟ خودم باید بهترش کنم؟ دست خودمه؟ پس چرا درستش نمیکنم؟!
۱۱. چقدر بده حس کنی راه حل مشکلاتی رو میدونی ولی دلت نمی‌خواد اجراشون کنی!
۱۲. اینجا بلاگه یا چرک نویس؟!
۱۳. برم بخوابم!