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

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

استاتیک در زبان C به چه معنیه؟

0 امتیاز
1,403 نمایش

در جاهای مختلفی از یک برنامه به زبان C دیدم که از این کلمه استفاده میشه.
همه جا یک معنی میده یا معانی مختلفی داره؟ چه معانی‌ای؟

پرسیده شده شنبه ۱۴ اردیبهشت ۱۳۹۲ در زبان‌های برنامه‌نویسی توسط CPP_Crawler4  
شناسایی شد شنبه ۱۴ اردیبهشت ۱۳۹۲ توسط CPP_Crawler4

1 پاسخ

0 امتیاز
 
بهترین پاسخ

1- یک متغیر استاتیک داخل یک تابع که مقادیرشو در فراخوانی‌ها حفظ میکنه.
مثال:

#include <stdio.h>

void foo()
{
    int a = 10;
    static int sa = 10;

    a += 5;
    sa += 5;

    printf("a = %d, sa = %d\n", a, sa);
}


int main()
{
    int i;

    for (i = 0; i < 10; ++i)
        foo();
}

خروجی:

a = 15, sa = 15
a = 15, sa = 20
a = 15, sa = 25
a = 15, sa = 30
a = 15, sa = 35
a = 15, sa = 40
a = 15, sa = 45
a = 15, sa = 50
a = 15, sa = 55
a = 15, sa = 60

که این کاربرد داره برای وقتی که تابع نیاز داره در فراخوانیهای مختلف حالتی رو حفظ کنه . در عین حال نمیخوایم از متغیرهای سراسری استفاده بشه.

2-یک متغیر سراسری استاتیک یا یک تابع که تنها در فایلی که در اون اعلان شده دیده میشه.
که این مورد برای داشتن خصوصیت کنترل دسترسی استفاده میشه. مثلا وقتی شما فایلی بصورت a.c دارین که قابلیتی رو پیاده‌سازی میکنه، معمولا فقط تعدادی تابع عمومی رو در معرض دید کاربر میذاره. بقیه توابعش باید استاتیک باشن تا کاربر نتونه به اونها دسترسی داشته باشه.

پاسخ داده شده سه شنبه ۱۷ اردیبهشت ۱۳۹۲ توسط CPP_Crawler4