সি 11 এ কুরুচিপূর্ণ কীওয়ার্ডস কেন?


15

আমি বর্তমানে সি 11 নির্দিষ্টকরণের একটি খসড়া পড়ছি reading নতুন প্রবর্তিত কীওয়ার্ডগুলি: _Bool, _Alignof, _Atomicমানক সংরক্ষিত কীওয়ার্ডগুলির পরিবর্তে সকলকে কাস্টম এক্সটেনশনের মতো মনে হয় struct, union, int

আমি বুঝতে পারি যে স্ট্যান্ডার্ডটি মূলত স্ট্যান্ডার্ডযুক্ত এক্সটেনশনগুলি নিয়ে গঠিত ... তবে তবুও, এটি ভয়াবহ! সম্ভবত আমরা শিগগিরই __Long_Long_Reallylong_Integer_MSVC_2020_tস্ট্যান্ডার্ডে লতানো শেষ করব !

কী স্ট্যান্ডার্ড কোডের পিছনের সামঞ্জস্যতা কীওয়ার্ডগুলির নতুন স্টাইলের একমাত্র কারণ?


2
নাহ, আমি আসলে এর মতো দীর্ঘ ধরণের বিষয়ে চিন্তা করব না। _, অজ, এজেড এবং 0-9 এর বর্ণ এবং সংখ্যা সংমিশ্রণের অর্থ তারা সম্ভবত এর পরিবর্তে মনে রাখা খুব কম এবং শক্ত হবে।
নিল

2
প্রতিটি কীওয়ার্ডের জন্য একটি ভাল দেখাচ্ছে সমার্থক শব্দটি প্রায়শই প্রাসঙ্গিক স্ট্যান্ডার্ড লাইব্রেরি শিরোনাম ফাইলে সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, যে কোনও সি 11 বাস্তবায়নের <stdbool.h>শিরোনাম ফাইলটিতে অবশ্যই প্রিপ্রসেসর ম্যাক্রো অন্তর্ভুক্ত থাকতে হবে #define bool _Bool। এটি একটি ঝরঝরে সমাধান হিসাবে এটি পিছনের সামঞ্জস্য বজায় রাখে, তবে যে কোনও নতুন কোডকে নতুন শিরোনাম ফাইলটি আরও আকর্ষণীয় বাক্য গঠন ব্যবহার করার অনুমতি দেয়।
andrew.punnett

উত্তর:


20

আমি ধারণা করি যে পুরোপুরি মানক কোডের সাথে পিছনে সামঞ্জস্যতা আরও গুরুত্বপূর্ণ কারণ।

আপনি যদি এমন কোনও কীওয়ার্ড যুক্ত করেন যা সম্ভবত আগের কোডটিতে বৈধ সনাক্তকারী হিসাবে ব্যবহৃত হয়ে থাকে, আপনি সম্ভাব্য সূক্ষ্ম ত্রুটিগুলির বিশেষত সিতে, কোনওরকম জটিল পার্সিং বিধি সম্বলিত একটি ভাষা তৈরি করেন।

এই শনাক্তকারীদের যদি কোথাও পাবলিক ইন্টারফেস হিসাবে ব্যবহার করা হয়, আপনি এই জাতীয় দুর্ভাগ্যগ্রন্থাগারগুলির সমস্ত ব্যবহারকারীর জন্য ব্যাথা যোগ করুন, যারা সম্ভবত সি ব্যবহার করবেন না, তবে রুবি, বা পাইথন ইত্যাদি থেকে লাইব্রেরি কল করুন etc.

এই কারণেই নতুন কীওয়ার্ডগুলি কম সুন্দর শব্দের মতো দেখতে আরও কম দেখাবে এবং হ'ল বল্ট-অন হ্যাকের মতো লোকেরা ইতিমধ্যে অন্য উদ্দেশ্যে ব্যবহার করার ক্ষুদ্র সম্ভাবনা রয়েছে।


এটি চিহ্নিত করা উচিত যে প্রশ্নটি সি নয় + সি সম্পর্কিত নয় যে এটি গুরুত্বপূর্ণ নয়। আপনার উত্তরটির কারণটি অন্তর্ভুক্ত করে যে কোনও নতুন প্রোপ্রেটেড ধরণের Boolলিগ্যাসি কোডে একটি কাস্টম ধরণের সাথে দ্বন্দ্ব সৃষ্টি করা এড়াতে এমন কিছু নামকরণ করা হবে যা বুলিয়ান হিসাবে প্রশস্তভাবে গৃহীত হয়েছিল তবে বাস্তবে কখনও এটি সি স্ট্যান্ডার্ডের অংশ নয় তাই অনুমানটি নিরাপদ নয় ভুলবেন না।
রামহাউন্ড

1
@ রামহাউন্ড, আইএমএইচও boolআরও বেশি সি এর আত্মায় থাকতে পারে এছাড়াও, আমি এই উত্তরের দ্বারা সম্পূর্ণরূপে নিশ্চিত নই, কারণ কুৎসিত শব্দগুলিও অ-মানক কোড দ্বারা ব্যবহৃত হতে পারে। এবং শব্দের শৈলীর পরিবর্তন স্ট্যান্ডার্ড শব্দগুলিকে এক নজরে চিনতে আরও শক্ত করে তোলে।
ভোরাক

6
@ ভোরাক: সমস্যাটি হ'ল যদি ভাষাটিতে boolনিঃশর্ত যুক্ত করা হয় তবে সমস্ত প্রকল্পের নিজস্ব (পুরোপুরি বৈধ) সংস্করণ রয়েছে boolযা সংকলন বন্ধ করবে। এটি ভাষা সংশোধনের স্বীকৃতিটিকে মারাত্মকভাবে ক্ষতিগ্রস্থ করবে। এই কারণেই সমস্ত নতুন সনাক্তকারীকে সংরক্ষিত সেট থেকে নেওয়া হচ্ছে (এভাবে শুরু করা _[capital])। যেহেতু boolনিজের জন্যও বিশাল চাহিদা ছিল তাই এটি এটিকে যুক্ত করা typedef _Bool boolহয়েছে <stdbool.h>
বার্ট ভ্যান ইনজেন শেহেনো

1
@ বার্টওয়ানজেঞ্জেনচেনাউ - যা লোকদের নিজস্ব বুলিয়ান মানের টাইপডেফের মধ্যে থাকা একটিতে প্রতিস্থাপন করতে বা তাদের নিজস্ব লিডিজি কোডটি সমর্থন করার জন্য নিজস্ব টাইপডেফকে stdbool.hনতুন ধরণের আপডেট করতে দেয়।
রামহাউন্ড

1
@ রামহাউন্ড - নতুন সি 11 কীওয়ার্ডগুলির সাথে বিরোধযুক্ত ভেরিয়েবলগুলির লোকেরা "তাই এটি ব্যবহার করবেন না?" ব্যবহার করতে পারে। নতুন ভাষার মানগুলির সাথে কোনও দ্বন্দ্ব রোধ করতে স্টাইল = এক্সএক্সএক্স একটি সংকলন পতাকা রয়েছে।
স্কুটার

8

আন্ডারস্কোর এবং মূলধনী অক্ষর দিয়ে শুরু হওয়া নামগুলি (এবং ডাবল আন্ডারস্কোর সহ যে কোনও কিছু) পূর্ববর্তী মানগুলিতে সংকলক / স্ট্যান্ডার্ড লাইব্রেরি প্রয়োগের জন্য সংরক্ষিত ছিল।

সি 98 এবং সি 99 এর সংরক্ষিত শনাক্তকারীদের থেকে :

এছাড়াও বাস্তবায়নকারীদের জন্য সংরক্ষিত হ'ল আন্ডারস্কোর দিয়ে শুরু হওয়া সমস্ত বাহ্যিক শনাক্তকারী এবং অন্য সমস্ত শনাক্তকারী আন্ডারস্কোর দ্বারা শুরু করে মূলধন পত্র বা আন্ডারস্কোর দ্বারা শুরু হয়।

সুতরাং তত্ত্ব অনুসারে, এই নতুন কীওয়ার্ডগুলির আগে কোনও কোড রাইটেনে ব্যবহার করা উচিত নয় এবং এটি কোনও সাধারণ নামের তুলনায় আরও ভাল পশ্চাৎসঙ্গতির দিকে পরিচালিত করে, এটি সম্ভবত একমাত্র কারণ।


4
আপনার উল্লেখ করা উচিত এবং যথাযথ মান বিভাগের সাথে লিঙ্ক বা নামকরণ করা উচিত, যাতে অন্যরা আপনার বক্তব্যটি দ্রুত যাচাই করতে পারে। এটি আপনার উত্তরের উন্নতি করবে।
স্পেসট্রকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.