این دستور پیش پردازنده به کامپایلر اجازه میده تا برخی از دستورات را فعال کنه. به عبارت دیگه امکان میده تا دستورات گوناگونی که توسط سازنده کامپایلر تعریف شده رو به خود کامپایلر بده.
در واقع با این دستورها می توان بسیاری از تنظیمات کامپایلر را بدون استفاده از ابزار های خود کامپایلر انجام داد. این دستورات به کامپایلری که مورد استفاده قرار گرفته بستگی داره و در همه کامپایلر ها یکسان نیست.
مثلا دستورات زیر برای ایجاد تنظیمات چاپ برنامه نوشته شده استفاده می شود:
کد:
#pragma PRINT
#pragma COND
#pragma SYMBOLS
#pragma CODE
#pragma PAGEWIDTH(60)
#pragma PAGELENGTH(80)
یا دستور #pragma argsused اخطار زیر را برای توابعی که بعد از این دستور میاد رو غیر فعال میکنه
کد:
Parameter name is never used in function func-name
یه امورش در رابطه با دستورات و ماکروها میزارم...
2- چرا وقتی یک هدر مینویسند ( با پسوند .h) یک فایل .c هم تولید میکنند و توابع رو داخل اون تعریف می کنند؟؟؟
این کار بیشتر برای نظم دادن به سورس برنامه هست. که الگوی توابع، تعریف متغیر ها و ثابت ها در هدر باشه و بدنه توابع در فایل سی با همون نام. میشه از این کار هم صرف نظر کرد و همگی را در یک فایل نوشت.
یک سوال هم در مورد اشاره گر دارم. اصلا به چه دردی میخوره؟؟ چه فرقی با متغییر معمولی داره؟؟
اشاره گر ها مبحث خیلی مهم و پر دردسری توی سی هست. در اصل اشاره گر چیزی نیست جر آدرس یه قسمت از حافظه!
اشاره گر متغیری هست که آدرس حافظه یک متغیر یا شی را در خودش نگه میداره. مثلن اگه متغیری به نام p شامل آدرس متغیر دیگری به نام q باشه، در اینصورت گفته میشه که p به q اشاره میکنه.
حالا اگه q در ادرس100 حافظه باشه پس p شامل مقدار 100 هست که همون ادرس q هست.