ইতিমধ্যেই যেমন বিবৃত ??!??!মূলত দুটি trigraphs ( ??!এবং ??!আবার) একসঙ্গে mushed যে পেতে প্রতিস্থাপিত-অনুবাদ ||, অর্থাত্ লজিক্যাল বা , প্রাক প্রসেসর দ্বারা।
প্রতিটি ট্রিগ্রফ সমন্বিত নিম্নলিখিত টেবিলটি বিকল্প ট্রিগ্রাফ সংমিশ্রণগুলি নিষ্ক্রিয় করতে সহায়তা করবে:
Trigraph Replaces
??( [
??) ]
??< {
??> }
??/ \
??' ^
??= #
??! |
??- ~
উত্স: সি: একটি রেফারেন্স ম্যানুয়াল 5 ম সংস্করণ
সুতরাং এমন একটি ট্রিগার যা দেখে মনে হচ্ছে ??(??)অবশেষে মানচিত্র তৈরি করবে [], ??(??)??(??)প্রতিস্থাপন করবে [][]এবং এরকমভাবে , আপনি ধারণা পাবেন get
যেহেতু প্রিপ্রোসেসিংয়ের সময় ট্রাইগ্রাফগুলি প্রতিস্থাপন করা হয় আপনি cppএকটি নির্বোধ trigr.cপ্রোগ্রামটি ব্যবহার করে নিজেই আউটপুটটি দেখতে পেতে পারেন :
void main(){ const char *s = "??!??!"; }
এবং এটি দিয়ে প্রক্রিয়াজাতকরণ:
cpp -trigraphs trigr.c
এর কনসোল আউটপুট পাবেন
void main(){ const char *s = "||"; }
আপনি লক্ষ্য করতে পারেন, বিকল্পটি -trigraphsঅবশ্যই নির্দিষ্ট করতে cppহবে অন্যথায় একটি সতর্কতা জারি করবে; এটি সূচিত করে যে কীভাবে ট্রাইগ্রাফগুলি অতীতের একটি বিষয় এবং তাদের মধ্যে ঝাঁপিয়ে পড়তে পারে এমন মানুষকে বিভ্রান্ত করা ছাড়া আর কোনও আধুনিক মূল্য নেই ।
ট্রাইগ্রাফ প্রবর্তনের পিছনে যুক্তি হিসাবে , আইএসও / আইইসি 6৪6 এর ইতিহাস বিভাগের দিকে তাকালে এটি আরও ভালভাবে বোঝা যায় :
আইএসও / আইইসি 6৪6 এবং এর পূর্বসূরী এএসসিআইআই (এএনএসআই এক্স 3.4) টেলিযোগাযোগ শিল্পে চরিত্রের এনকোডিংগুলি সম্পর্কে প্রচলিত বিদ্যমান অনুশীলনকে মূলত সমর্থন করে।
যেহেতু এএসসিআইআই ইংরেজি ব্যতীত অন্যান্য ভাষার জন্য প্রয়োজনীয় অনেকগুলি অক্ষর সরবরাহ করে না, তাই বেশ কয়েকটি জাতীয় রূপ তৈরি করা হয়েছিল যা প্রয়োজনীয় বর্ণগুলির সাথে কিছু কম ব্যবহৃত চরিত্রকে প্রতিস্থাপন করে ।
(জোর আমার)
সুতরাং, সংক্ষেপে, কিছু প্রয়োজনীয় অক্ষর (যাদের জন্য একটি ট্রিিগের উপস্থিত রয়েছে) নির্দিষ্ট জাতীয় রূপগুলিতে প্রতিস্থাপন করা হয়েছিল। এটি অন্যান্য রূপগুলির চারপাশে থাকা অক্ষরগুলি সমন্বিত ট্রাইগ্রাফ ব্যবহার করে বিকল্প প্রতিনিধিত্বের দিকে নিয়ে যায়।
!ErrorHasOccurred() ??!???! HandleError();সংকলন আশা করবেন? এটাই??!???!। বিষয়টি প্রমাণ করে?