আমি যা জানি তা হল যে গ্লোবাল এবং স্ট্যাটিক ভেরিয়েবলগুলি .data
সেগমেন্টে সঞ্চিত রয়েছে এবং অবিচ্ছিন্ন তথ্য .bss
সেগমেন্টে রয়েছে। আমি যা বুঝতে পারি না তা হ'ল আমরা কেন অবিচ্ছিন্ন ভেরিয়েবলগুলির জন্য উত্সর্গীকৃত বিভাগ রাখি? যদি একটি অবিশ্রান্ত ভেরিয়েবলের রান সময় নির্ধারিত একটি মান থাকে, তবে ভেরিয়েবলটি .bss
কেবলমাত্র বিভাগে বিদ্যমান ?
নিম্নলিখিত প্রোগ্রামে, a
হয় .data
সেগমেন্ট, এবং b
হয় .bss
সেগমেন্ট; এটা কি ঠিক? আমার বুঝতে ভুল হলে দয়া করে আমাকে সংশোধন করুন।
#include <stdio.h>
#include <stdlib.h>
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
int b[20]; /* Uninitialized, so in the .bss and will not occupy space for 20 * sizeof (int) */
int main ()
{
;
}
এছাড়াও, নিম্নলিখিত প্রোগ্রাম বিবেচনা করুন,
#include <stdio.h>
#include <stdlib.h>
int var[10]; /* Uninitialized so in .bss */
int main ()
{
var[0] = 20 /* **Initialized, where this 'var' will be ?** */
}