বিধিগুলি (যা সি ++ 11 এ পরিবর্তন হয়নি):
- বাস্তবায়ন ম্যাক্রো হিসাবে ব্যবহারের জন্য সহ যে কোনও সুযোগে সংরক্ষিত :
- শনাক্তকারীরা আন্ডারস্কোর দিয়ে শুরু করে সাথে সাথে একটি বড় হাতের অক্ষর দ্বারা অনুসরণ করা হয়
- সংলগ্ন আন্ডারস্কোর (বা "ডাবল আন্ডারস্কোর") ধারণকারী সনাক্তকারী
- বিশ্বব্যাপী নেমস্পেসে সংরক্ষিত:
- শনাক্তকারীরা একটি আন্ডারস্কোর দিয়ে শুরু করে
- এছাড়াও,
std
নেমস্পেসের সমস্ত কিছুই সংরক্ষিত। (যদিও আপনাকে টেমপ্লেট বিশেষীকরণের অনুমতি দেওয়া হয়েছে))
2003 সি ++ স্ট্যান্ডার্ড থেকে:
17.4.3.1.2 গ্লোবাল নামগুলি [lib.global.names]
নাম এবং ফাংশন স্বাক্ষরের কয়েকটি সেট সর্বদা প্রয়োগের জন্য সংরক্ষিত থাকে:
- প্রতিটি নাম যাতে ডাবল আন্ডারস্কোর (
__
) থাকে বা একটি আন্ডারস্কোর দিয়ে শুরু হয় তারপরে বড় হাতের অক্ষর (2.11) কোনও ব্যবহারের জন্য প্রয়োগের জন্য সংরক্ষিত থাকে।
- আন্ডারস্কোর দিয়ে শুরু হওয়া প্রতিটি নাম গ্লোবাল নেমস্পেসে নাম হিসাবে ব্যবহারের জন্য প্রয়োগের জন্য সংরক্ষিত। 165
165) এই ধরনের নাম এছাড়াও নামস্থানে সংরক্ষিত ::std
(17.4.3.1)।
কারণ সি ++ সি স্ট্যান্ডার্ড (1.1 / 2, C ++ 03) এর উপর ভিত্তি করে এবং C99 একটি আদর্শ রেফারেন্স (1.2 / 1, C ++ 03) এগুলিও প্রয়োগ হয়, 1999 সি স্ট্যান্ডার্ড থেকে:
7.1.3 সংরক্ষিত সনাক্তকারী
প্রতিটি শিরোনাম তার সম্পর্কিত সাবক্লাউজে তালিকাভুক্ত সমস্ত সনাক্তকারীকে ঘোষণা করে বা সংজ্ঞায়িত করে এবং তার সাথে সম্পর্কিত ভবিষ্যতের গ্রন্থাগারের দিকনির্দেশের সাবক্লাউস এবং শনাক্তকারীদের বৈকল্পিকভাবে ঘোষণা বা সংজ্ঞা দেয় যা সর্বদা কোনও ব্যবহারের জন্য বা ফাইল স্কোপ সনাক্তকারী হিসাবে ব্যবহারের জন্য সংরক্ষিত থাকে reserved
- আন্ডারস্কোর এবং যেহেতু বড় হাতের অক্ষর বা অন্য কোনও আন্ডারস্কোর দিয়ে শুরু হওয়া সমস্ত সনাক্তকারী সর্বদা যে কোনও ব্যবহারের জন্য সংরক্ষিত।
- আন্ডারস্কোর দিয়ে শুরু হওয়া সমস্ত সনাক্তকারী সাধারণ এবং ট্যাগের নাম উভয় জায়গাতেই ফাইল স্কোপ সহ সনাক্তকারী হিসাবে ব্যবহারের জন্য সংরক্ষিত থাকে।
- নিম্নলিখিত যেকোন উপক্লাজের প্রতিটি ম্যাক্রো নাম (ভবিষ্যতের গ্রন্থাগারের দিকনির্দেশ সহ) নির্দিষ্টভাবে ব্যবহারের জন্য সংরক্ষিত রয়েছে যদি এর সম্পর্কিত কোনও শিরোনাম অন্তর্ভুক্ত থাকে; স্পষ্টভাবে অন্যথায় না বলা হয়েছে (দেখুন 7.1.4)।
- নিম্নলিখিত যেকোন উপক্লাজের (ভবিষ্যতের গ্রন্থাগারের দিকনির্দেশ সহ) বাহ্যিক সংযোগ সহ সমস্ত সনাক্তকারী সর্বদা বহিরাগত সংযোগ সহ সনাক্তকারী হিসাবে ব্যবহারের জন্য সংরক্ষিত। 154
- নিম্নলিখিত যেকোন উপক্লাজে তালিকাভুক্ত ফাইল স্কোপ সহ প্রতিটি শনাক্তকারী (ভবিষ্যতের লাইব্রেরির দিকনির্দেশগুলি সহ) ম্যাক্রো নাম হিসাবে ব্যবহারের জন্য এবং এর সাথে সম্পর্কিত কোনও শিরোনাম অন্তর্ভুক্ত করা হলে একই নামের জায়গাতে ফাইল স্কোপ সহ সনাক্তকারী হিসাবে সংরক্ষিত।
অন্য কোনও শনাক্তকারী সংরক্ষিত নেই। প্রোগ্রামটি যদি এমন কোনও প্রেক্ষাপটে কোনও শনাক্তকারীকে ঘোষনা করে বা সংজ্ঞায়িত করে (7.1.4 অনুসারে অনুমোদিত ব্যতীত), বা কোনও সংরক্ষিত শনাক্তকারীকে ম্যাক্রো নাম হিসাবে সংজ্ঞায়িত করে, তবে আচরণটি সংজ্ঞায়িত নয়।
যদি প্রোগ্রামটি #undef
উপরে তালিকাভুক্ত প্রথম গোষ্ঠীর কোনও শনাক্তকারীর কোনও ম্যাক্রো সংজ্ঞা অপসারণ (সাথে ) করে, তবে আচরণটি সংজ্ঞায়িত।
154) বাহ্যিক দুটো ঘটনার সঙ্গে সংরক্ষিত শনাক্তকারী করেন তাদের তালিকা অন্তর্ভুক্ত errno
, math_errhandling
, setjmp
, এবং va_end
।
অন্যান্য বিধিনিষেধগুলি প্রযোজ্য হতে পারে। উদাহরণস্বরূপ, পসআইএক্স স্ট্যান্ডার্ড প্রচুর পরিমাণে শনাক্তকারী সংরক্ষণ করে যা সম্ভবত স্বাভাবিক কোডে প্রদর্শিত হতে পারে:
- মূলধন দিয়ে শুরু হওয়া নামগুলি
E
একটি অঙ্ক বা বড় হাতের অক্ষর অনুসরণ করে:
- অতিরিক্ত ত্রুটি কোড নামের জন্য ব্যবহার করা যেতে পারে।
- যে নামগুলি শুরু হয়
is
বা to
ছোট অক্ষর দ্বারা অনুসরণ করা
হয়
- অতিরিক্ত অক্ষর পরীক্ষা এবং রূপান্তর ফাংশন জন্য ব্যবহৃত হতে পারে।
LC_
একটি বড় হাতের অক্ষর দ্বারা অনুসরণ করা
নামগুলি
- লোকাল বৈশিষ্ট্যগুলি নির্দিষ্ট করে অতিরিক্ত ম্যাক্রোগুলির জন্য ব্যবহার করা যেতে পারে।
- সমস্ত বিদ্যমান গণিতের ক্রিয়াগুলির নাম প্রত্যয়িত
f
বা l
সংরক্ষিত আছে
- সংশ্লিষ্ট ফাংশনগুলির জন্য যা যথাক্রমে ভাসা এবং দীর্ঘ ডবল আর্গুমেন্টগুলিতে কাজ করে।
SIG
বড় হাতের অক্ষরের পরে শুরু হওয়া নামগুলি সংরক্ষিত থাকে
- অতিরিক্ত সংকেত নামের জন্য।
SIG_
বড় হাতের অক্ষরের পরে শুরু হওয়া নামগুলি সংরক্ষিত থাকে
- অতিরিক্ত সংকেত কর্মের জন্য।
- শুরু নাম
str
, mem
বা wcs
একটি ছোট হাতের অক্ষর দ্বারা অনুসরণ সংরক্ষিত
- অতিরিক্ত স্ট্রিং এবং অ্যারে ফাংশন জন্য।
- নামগুলি কোনও ছোট হাতের অক্ষর দিয়ে শুরু হয়
PRI
বা SCN
অনুসরণ করা হয় বা X
সংরক্ষিত থাকে
- অতিরিক্ত ফর্ম্যাট নির্দিষ্টকরণকারী ম্যাক্রোগুলির জন্য
- এর সাথে শেষ হওয়া নামগুলি
_t
সংরক্ষিত আছে
- অতিরিক্ত টাইপ নামের জন্য।
এই মুহুর্তে আপনার নিজের উদ্দেশ্যে এই নামগুলি ব্যবহার করার ফলে কোনও সমস্যা নাও হতে পারে, তবে তারা সেই মানটির ভবিষ্যতের সংস্করণগুলির সাথে দ্বন্দ্বের সম্ভাবনা বাড়িয়ে তোলে।
ব্যক্তিগতভাবে আমি কেবল আন্ডারস্কোর দিয়ে সনাক্তকারী শুরু করি না। আমার নিয়মে নতুন সংযোজন: কোথাও ডাবল আন্ডারস্কোর ব্যবহার করবেন না, যা খুব কমই আমি আন্ডারস্কোর ব্যবহার করি বলে এটি সহজ।
এই নিবন্ধটি নিয়ে গবেষণা করার পরে আমি আর আমার পরিচয়কারীদের সাথে আর শেষ করব না কারণ _t
এটি পসিক্স মান দ্বারা সংরক্ষিত।
যে কোনও সনাক্তকারী সম্পর্কে বিধিটি _t
আমাকে অবাক করে দিয়েছিল। আমি মনে করি যে এটি একটি পসিক্স মান (এখনও নিশ্চিত নয়) স্পষ্টতা এবং অফিসিয়াল অধ্যায় এবং শ্লোকটির সন্ধান করছে। এটি জিএনইউ লিবিটোল ম্যানুয়াল থেকে সংরক্ষিত নাম তালিকাভুক্ত।
সিএসআরবি POSIX 2004 সংরক্ষিত প্রতীক এবং নোটগুলির জন্য নিম্নলিখিত লিঙ্কটি সরবরাহ করেছিল 'অন্যান্য অনেক সংরক্ষিত উপসর্গ এবং প্রত্যয় ... সেখানে পাওয়া যাবে'।
POSIX 2008 সংরক্ষিত প্রতীক এখানে সংজ্ঞায়িত করা হয়। উপরেরগুলির তুলনায় বিধিনিষেধগুলি কিছুটা বেশি উপোসযুক্ত।