PDA

View Full Version : سوال: كلمات كليدي زبان C



mehdad.koulab
جمعه 25 مرداد 1387, 08:57 صبح
سلام دوستان
چند تا سوال ساده در مورد كلمات كليدي زبان C دارم :خجالت:
1) auto
2)default
3)enum
4)extern
5)register
6)signed
7)static
8)struct
9)switch
10)typedef
11)union
12)unsigned
13)volatile
اينا كه گفتم براي چه كاري استفاده ميشن. مثلا ميگيم int براي تعريف متغيير عددي استفاده ميشه. با تشكر

mehdad.koulab
شنبه 26 مرداد 1387, 06:27 صبح
سلام دوستان سوالم خيلي مبتدي به خاطر اون كسي جواب نميده؟

linux
شنبه 26 مرداد 1387, 08:10 صبح
سلام دوستان سوالم خيلي مبتدي به خاطر اون كسي جواب نميده؟
هر کتاب آموزش c را که ببینی اینها را توضیح داده.

MOHSEN8000
شنبه 26 مرداد 1387, 10:28 صبح
ساختار Switch :


در برنامه نویسی گاهی نیاز داریم که چند حالت مختلف را مورد بررسی قرار دهیم ، که برای این کار از دستور switch استفاده می کنیم. و شکل کاربرد آن به صورت روبروست : (البته این ساختار با ساختار if\else هم قابل پیاده سازی است ولی استفاده از آن به این شکل راحت تر و بهتر است)



switch (عبارتی که بايد مورد بررسی قرار گيرد )
{
case مقدار ثابت 1 :
دستورات 1
break;
case مقدار ثابت 2 :
دستورات 2
break;

.
.
.

case : n مقدار ثابت
n دستورات
break;
default :
دستورات حالت پيش فرض
}





این ساختار ابتدا مقدار موجود در پرانتز را خوانده و آن رابا مقدار ثابت های case ها مقایسه می کند و این مقدار خوانده شده برابر مقدار ثابت هر case که بود ، دستورات آن case اجرا می شود. با رسیدن برنامه به دستور break ، برنامه از ساختار switch خارج می شود. و اگر مقدار موجود در پرانتز برابر با مقدار ثابت هیچ کدام از case ها نبود ، دستورات حالت default (پیش فرض) اجرا می شود. استفاده از حالت default الزامی نیست ، ولی نوشتن آن از سوی برنامه نویسان برای حالت هایی ست که پیش بینی نشده است. استفاده از break در پایان تمام case ها هم الزامی نیست ، ولی برای خروج از ساختار switch ، نوشتن آن در پایان تمام case ها توصیه می گردد.

MOHSEN8000
شنبه 26 مرداد 1387, 10:32 صبح
رده های ذخیره سازی :

.
C++ چهار معرف رده ذخیره سازی دارد :


1. auto 2. register 3. extern 4. static

رده ذخیره سازی یک شناسه ، مدت زمانی را که این شناسه در حافظه وجود دارد ، معین می کند.
حوزه شناسه ، جایی است که می توان در برنامه به آن مراجعه کرد. به بعضی شناسه ها می توان در تمام طول برنامه مراجعه کرد. ولی برخی دیگر تنها در بخش های محدودی از برنامه ، قابل ارجاع هستند.

معرف های رده ذخیره سازی ، به دو دسته تقسیم می شوند : 1. رده ذخیره سازی خودکار که کلمات auto و register برای اعلان متغیر های این رده هستند. 2. رده ذخیره سازی ایستا ، که هنگام ورود برنامه به بلوکی که شامل این ها است ، ایجاد می شوند. و مادامی که این بلوک فعال است ، موجودند و با خروج برنامه از بلوک ، نابود می شوند.
فقط متغیر ها می توانند از رده ذخیره سازی خودکار باشند. معرف auto ، متغیر ها را از رده ذخیره سازی خودکار اعلان می کند.


Auto float x , y ;



چون پیش فرض رده ذخیره سازی برای متغیر های محلی ، رده خودکار است ، لذا از کلمه auto به ندرت استفاده می شود. در ادامه این بحث ، به جای (( متغیر های از رده ذخیره سازی خودکار )) می گوییم (( متغیرهای خودکار )).

در نسخه زبان ماشین برنامه ، داده ها برای انجام محاسبات و پردازش ، در ثبات ها بار می شوند.
معرف رده ذخیره سازی register ( ثبات ) را می توانیم قبل از اعلان یک متغیر خودکار قرار دهیم. تا به کامپایلر بگوییم این متغیر در یکی از ثبات های سخت افزاری سریع کامپیوتر ، نگهداری شود. اگر بتوان متغیر هایی را که زیاد مورد استفاده است ، ( مثل شمارنده ها یا مجموع ها ) ، را در ثبات های سخت افزاری نگهداری کرد ، هزینه بار کردن مکرر متغیر ها از حافظه به ثبات ها و ذخیره نتایج به حافظه می تواند حذف شود.

کلمات کلیدی extern و static برای اعلان متغیر ها و توابعی است که می خواهیم از رده ذخیره سازی ایستا باشند. و این متغیرها از نقطه ای که برنامه از آن جا شروع به اجرا می کند ، وجود دارند. و برای متغیر ها ، حافظه یک بار تخصیص داده می شود و آن هم موقع اجرای برنامه؛ و مقدار اولیه آن ها هم تعیین می شود.برای توابع ، نام تابع از شروع اجرای برنامه وجود دارد.

شناسه های از رده ذخیره سازی ایستا بر 2 نوع هستند : 1. شناسه های خارجی ( global یا متغیرها و توابع سراسری ) 2. متغیرهای محلی که با معرف رده ذخیره static ، اعلان شده اند. پیش فرض رده ذخیره سازی نام توابع و متغیر های سراسری ، extern است. متغیرهای سراسری را با قرار دادن نام آن ها در بیرون از تعریف همه توابع ، ایجاد می کنند.

اگر متغیری محلی با کلمه کلیدی static اعلان شده باشد ، فقط در تابعی که در آن تعریف شده ، شناخته می شود. اما بر خلاف متغیرهای خودکار ، هنگام خروج از تابع ، مقدار خود را نگه می دارد. و در دفعه بعد فراخوانی ، این متغیر محلی static حاوی مقداری ست که در آخرین خروج از تابع داشته است.

همه متغیرهای عددی از رده ذخیره سازی ایستا ، اگر برنامه نویس صریحا مقدار اولیه آن ها را نداده باشد ، مقدار اولیه 0 را می گیرند.

MOHSEN8000
شنبه 26 مرداد 1387, 10:38 صبح
Enum < نام نوع > { شناسه ها}


خط بالا یک نوع تعریف شده توسط کاربر است که به آن شمارش می گویند ، ایجاد می کند. شمارش با کلمه کلیدی enum و نام نوع تعریف می شود. و مجموعه ای از اعداد صحیح متوالی است که با شناسه هایی معلوم می شوند. و مقادیر آن ها از 0 آغاز می شود. ( مگر آن که خلاف آن ذکر شود ) و یکی یکی هم اضافه می شود. شناسه های یک enum باید یکتا باشند ( یعنی نام متغیر ها ) . اما ثابت های شمارشی مختلف ، می توانند دارای مقادیر صحیح یکسانی باشند.

MOHSEN8000
شنبه 26 مرداد 1387, 10:47 صبح
من اینارو آماده داشتم که گفتم. ولی بقیشو فکر کنم جستجو کنی توی همین سایت چیزای زیادی پیدا می کنی. چون به نظرم کلا این تالار مجموعه خیلی خوبی از اطلاعات رو برای شما داشته باشه. در همه سطحی. یعنی شاید برای شروع برنامه نویسی ، این سایت بهتر از کتاب ها هم باشه.
موفق باشی.