تفاوت بین داده های int و استاتیک int در C چیست؟


پاسخ 1:

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

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

اگر متغیر "استاتیک" اعلام شود ، حافظه از یک منطقه ایستا اختصاص داده می شود و برای کل اجرای فرایند حفظ می شود. استفاده مشترک از یک متغیر "static" عنوانی برای ساختارهای داده های مداوم است که از مخزن ذخیره سازی اختصاص داده می شوند (با malloc یا یک عنصر معادل). همچنین از حافظه استاتیک برای نگه داشتن پرچم های اولیه سازی و اطلاعات مرتبط مانند نام پرونده ها و دسته ها استفاده می شود.

توجه داشته باشید که "استاتیک" به معنای دستیابی جهانی نیست (گرچه متغیرهای قابل دسترسی در سطح جهان ذاتاً ایستا هستند).


پاسخ 2:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟


پاسخ 3:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟


پاسخ 4:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟


پاسخ 5:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟


پاسخ 6:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟


پاسخ 7:

متغیر استاتیک جهانی محلی برای واحد ترجمه ای است که در آن تعریف شده است. این دو متغیر مستقل در دو واحد ترجمه مختلف ایجاد می کند. اگر یک متغیر جهانی غیر استاتیک int تعریف کنید؛ یک خطای پیوند دهنده در دو واحد ترجمه رخ می دهد (با این حال ، می توانید int b از خارج استفاده کنید ؛ در یکی از دو واحد ترجمه ، می توانید به لینک دهنده بگویید که باید از متغیر جهانی واحد ترجمه دیگر استفاده شود).

منبع:

تفاوت بین استاتیک int a و int a چیست؟