static uint8_t togglecode[256] = {
[0x3A] CAPSLOCK,
[0x45] NUMLOCK,
[0x46] SCROLLLOCK
};
[0x3A]এখানে অর্থ কি ? আমি শুধুমাত্র মত বিবৃতি শিখেছিint a[2] = {1, 2};
static uint8_t togglecode[256] = {
[0x3A] CAPSLOCK,
[0x45] NUMLOCK,
[0x46] SCROLLLOCK
};
[0x3A]এখানে অর্থ কি ? আমি শুধুমাত্র মত বিবৃতি শিখেছিint a[2] = {1, 2};
উত্তর:
এর অর্থ অ্যারের এন- তম উপাদানটি আরম্ভ করা । আপনি যে উদাহরণটি দিয়েছেন তার অর্থ এই হবে:
togglecode[0x3A] == CAPSLOCK
togglecode[0x45] == NUMLOCK
togglecode[0x46] == SCROLLLOCK
এগুলিকে "মনোনীত আরম্ভকারী" বলা হয় এবং এটি আসলে সি 99 স্ট্যান্ডার্ডের অংশ। তবে সিনট্যাক্সটি ছাড়াই =নয় is এই পৃষ্ঠা থেকে:
এটির জন্য একটি বিকল্প বাক্য গঠন যা জিসিসি 2.5 থেকে অপ্রচলিত কিন্তু জিসিসি এখনও গ্রহণ করে তা হ'ল
[index]এলিমেন্ট মানের আগে লিখতে হবে=।
জিসিসি ডক্স অনুসারে এটি আইএসও সি 99 অনুগামী। তারা এটিকে "মনোনীত প্রারম্ভিক" হিসাবে উল্লেখ করে:
একটি অ্যারে সূচক নির্দিষ্ট করতে, উপাদান মানের আগে `[সূচি] = 'লিখুন। উদাহরণ স্বরূপ,
int a[6] = { [4] = 29, [2] = 15 };সমতুল্য
int a[6] = { 0, 0, 15, 0, 29, 0 };
আমি এই সিনট্যাক্সটি আগে কখনও দেখিনি, তবে আমি কেবল এটি জিসিসি ৪.৪.৫ দিয়ে -ওয়াল দিয়ে সংকলন করেছি। এটি সফলভাবে সংকলিত হয়েছে এবং কোনও সতর্কতা দেয়নি।
যেমন আপনি উদাহরণ থেকে দেখতে পাচ্ছেন, এটি আপনাকে নির্দিষ্ট অ্যারে উপাদানগুলি আরম্ভ করার অনুমতি দেয়, অন্যকে বাছাই করা।
এটি C99 সালে চালু হয়েছিল এবং এটি একটি মনোনীত ইনিশিয়ালাইজার বলা হয় ।
এটি মূলত আপনাকে ডিফল্ট হিসাবে বাকী বামে একটি অ্যারেতে নির্দিষ্ট মান সেট করতে দেয়।
এই বিশেষ ক্ষেত্রে, অ্যারে সূচকগুলি হ'ল কীবোর্ড স্ক্যান কোড। কীটির জন্য সেট # 1 (বিভাগ 10.6 দেখুন) 0x3aএর স্ক্যান কোডটি হ'ল এবং 0x46 হয় ।CapsLock0x45NumLockScrollLock
উপরের প্রথম লিঙ্কে এটি উল্লেখ করেছে যে:
int a[6] = { [4] = 29, [2] = 15 };
সমান:
int a[6] = { 0, 0, 15, 0, 29, 0 };
আকর্ষণীয়ভাবে যথেষ্ট, যদিও লিঙ্কটি উল্লেখ করেছে যে =এটি প্রয়োজনীয়, এটি এখানে দেখা যায় না।
এটি মনোনীত প্রারম্ভিকগুলির সিনট্যাক্স (কাছাকাছি) , একটি সি 99 বৈশিষ্ট্য।
মূলত, এটি একটি অ্যারের অংশগুলি সূচনা করে, উদাহরণস্বরূপ;
int aa[4] = { [2] = 3, [1] = 6 };
অ্যারের দ্বিতীয় মানটি 6 এবং তৃতীয় থেকে 3 তে অন্তর্ভুক্ত করে।
আপনার ক্ষেত্রে অ্যারের অফসেটগুলি হেক্স (0x3a) এ ঘটে যা অ্যারের 58' তম উপাদানটিকে ক্যাপস্ককের মান হিসাবে শুরু করে যা সম্ভবত আপনি প্রদর্শিত কোডের উপরের কোডে সংজ্ঞায়িত করা হয়েছে।
আপনার =কোডটির সংস্করণটি কোনও গিসি নির্দিষ্ট এক্সটেনশন বলে মনে হচ্ছে।