[Powered by Google Translate] Nate HARDISON: প্রোগ্রামিং, একটি লাইব্রেরী হল একটি সংগ্রহ সম্পর্কিত prewritten কোড. লাইব্রেরী হল কিভাবে আমরা, প্রোগ্রামাররা, ভাগ এবং সাধারণ একে অপরের সাথে বিভিন্ন সহায়ক প্রোগ্রাম সঙ্গে কোড, আমরা , লিখুন এবং এমনকি সঙ্গে বিভিন্ন প্রসেস এ চলমান আমাদের কম্পিউটারে একই সময়. চলুন একটু এক্সপ্লোর করুন. আরো সাধারণ ফাংশন যে আপনি সম্ভবত করেছি এক ব্যবহার করা হয়েছে printf ফাংশন. এখন printf, কিছু ম্যাজিক ফাংশন যে ছিল না কম্পিউটারের মধ্যে হার্ড কোডেড - বরং, এটা সি স্ট্যান্ডার্ড লাইব্রেরী অংশ, যা ফাংশন একটি সংগ্রহ সাথে C প্রোগ্রামিং ভাষা. যেহেতু printf কম্পিউটারের মধ্যে নির্মিত না হয়, তার মানে কিছু প্রোগ্রামার যিনি প্রকৃতপক্ষে সালে ছিল এবং লিখেছেন printf ফাংশন এবং মান বাকি সঙ্গে এটি bundled লাইব্রেরি যাতে ভবিষ্যতে প্রোগ্রামারদের আছে না অনুরূপ প্রচেষ্টা. এবং আমরা নিশ্চিত কৃতজ্ঞ যে যে ক্ষেত্রে, কারণ চেক কতটা কোড এটি আসলে printf বাস্তবায়ন লাগে. সি স্ট্যান্ডার্ড লাইব্রেরী, যা printf একটি অংশ, হয় সবচেয়ে গুরুত্বপূর্ণ মাধ্যম আপনি CS50 সামলাবার আছে. ইন ইনপুট আউটপুট-লাইব্রেরি ছাড়াও যেখানে printf জীবন, অন্যান্য লাইব্রেরি একটি গুচ্ছ আছে যা আপনি সম্ভবত ব্যবহার CS50 উপর অবশ্যই করব. উদাহরণস্বরূপ, স্ট্রিং লাইব্রেরি ফাংশন আছে সি স্ট্রিং তুলনা, তাদের দ্বারা, এবং তাদের পেতে কনক্যাটেনেট. গণিত এবং লাইব্রেরী আপনাকে সহায়ক পাই এবং ই ভালো ধ্রুবক,. এখন অন্যান্য প্রোগ্রামিং মান লাইব্রেরী, তুলনা ভাষা, সি স্ট্যান্ডার্ড লাইব্রেরী সত্যিই ছোট, কিন্তু এখনও তারা একটি উপাদান উল্লেখযোগ্য পরিমাণ আছে. এবং যে যে স্ট্যান্ডার্ড লাইব্রেরী বলতে হয় না শুধুমাত্র সি লাইব্রেরি; আছে অনেক আরও আছে বিশ্বের জন্য আপনি CS50 লাইব্রেরী সহ, ব্যবহার, ডিক্রিপশন এবং এনক্রিপশন সঙ্গে মানচিত্রনির্মানবিদ্যা লাইব্রেরি ফাংশন ফাংশন সঙ্গে, লাইব্রেরী এবং সঙ্কেতাক্ষরে লিখা ভিডিও প্লে ব্যাক, এবং তাই. এটি একটি গুরুত্বপূর্ণ সরাইয়া আমাদের এনেছে. প্রকৌশল অপরিহার্য দক্ষতার এক হয় বুদ্ধিমান আপনার সরঞ্জাম উপলব্ধ টুলবাক্স যাতে আপনি ব্যবহার করতে পারেন তাদের এবং যদি না চাকা reinventing এড়ানো আপনি সেটা আছে. প্রোগ্রামারদের হিসাবে, লাইব্রেরীগুলো হল সবচেয়ে গুরুত্বপূর্ণ এক আমরা সরঞ্জাম আছে. আপনি যখন নিজেকে খুঁজে পেতে একটি টাস্ক যে মনে ক্লান্তিকর অথবা সম্মুখীন প্রাকৃত, ভালো একটি সি স্ট্রিং এর দৈর্ঘ্য ফাইন্ডিং, আপনি নিজেকে জিজ্ঞাসা যদি এটি মামলা হতে পারে যে কেউ ইতোমধ্যেই একই জিনিস হয়ে গেছে আগে. হতে পারে যে আপনি কিছু খুঁজে পাইনি একটি লাইব্রেরি মধ্যে সাহায্য. তাই পরিভাষা মধ্যে, একটি লাইব্রেরি একটি বাইনারি ফাইল করেনি লিঙ্ক একটি সংগ্রহ একসঙ্গে দ্বারা উত্পাদিত হয়েছে বস্তুর একটি টুল ব্যবহার করে ফাইল বলা হয়, আপনি এটি, linker অনুমিত. অবজেক্ট ফাইলগুলি. ণ ফাইল পাবেন যখন আপনি সি সোর্স কোড কম্পাইল. যখন প্রোগ্রামাররা লাইব্রেরি লিখুন, তারা সাধারণত ফাইল দুই ধরনের মধ্যে তাদের সি কোড আলাদা: হেডার ফাইল ও বাস্তবায়ন ফাইল. একটি কনভেনশন দ্বারা হেডার ফাইলটি. জ ফাইল এক্সটেনশন দেওয়া হয়, এবং এটি যে কোড লাইব্রেরি এর ঘোষণা রয়েছে সম্পদের জন্য উপলব্ধ করার জন্য আপনাকে ব্যবহার করার জন্য. এই সংস্থানগুলি ফাংশন, ভেরিয়েবল, structs অন্তর্ভুক্ত, টাইপ সংজ্ঞা, এবং তাই, এবং একসঙ্গে, তারা হিসাবে ইন্টারফেস সাধারণভাবে বলা হয়. বস্তুত, যদি আপনি কি কখনো হতাশ করছি একটি লাইব্রেরি কি, হেডার ফাইল জায়গা চেহারা. উদাহরণস্বরূপ, আপনি usr থামা / অন্তর্ভুক্ত / পারেন stdio.h এবং চেক সবকিছু আউট আপনি কি কখনও সম্পর্কে জানতে চেয়েছেন প্রমিত IO লাইব্রেরি. এখানে একটি বিষয় নিয়ে অনেক কিছু আছে, এবং এটি একটি বিট গ্রহণ করতে পারেন সময় মাধ্যমে Wade যাও. সাথে Google এবং manpages বরাবর যাইহোক, এই হল যদি আপনি হতাশ করছি যান লিখুন কিভাবে স্ট্যান্ডার্ড ইনপুট / আউটপুট গ্রন্থাগারের ফাংশন কাজ. তাই এক কী জিনিস মনে রাখবেন এখানে যদিও, যে হেডার ফাইল সাধারণত ফাংশন সংজ্ঞা কি অন্তর্ভুক্ত নয় - যে, প্রকৃত বাস্তবায়নের ফাংশন. এটি একটি গুরুত্বপূর্ণ কম্পিউটার বিজ্ঞানের একটি চিত্রণ নীতি তথ্য লোকানোর বলা হয়, এ ও বলা হয় encapsulation হিসাবে বার. একটি লাইব্রেরি ব্যবহারকারী বা ক্লায়েন্ট হিসাবে, আপনাকে করতে হবে না গ্রন্থাগারের internals সম্পর্কে জ্ঞান এটি ব্যবহার করার জন্য আদেশ দেয়া হয়. এইজন্য printf শুধুমাত্র একটি বিট আগে মনে রাখুন? যদি কখনও কোন প্রকৃত কোড দেখা যায় আগে? ওয়েল, আমি ধরে নিই যে আপনি আছে না, যদিও আপনার উদ্যম বার printf টন ব্যবহার করেছেন. আপনার জানা ছিল ছিল ফাংশান উপস্থিত ঘোষণা মধ্যে stdio.h হেডার ফাইলটি. যাই হোক, ভাল তথ্য লোকানোর সুবিধা হয় যে আপনি এবং প্রোগ্রাম আপনি লিখুন কোন পরিবর্তন থেকে ভালভাবে উত্তাপ হয় গ্রন্থাগারের ফাংশন প্রয়োগের কোড. যদি printf পরিবর্তন বাস্তবায়ন, আপনার কাছে নেই যেতে পারেন এবং আপনার যেসব প্রোগ্রাম ব্যবহার printf সব পরিবর্তন. তাই বাস্তবায়ন যেখানে যান না? ভাল, আবার কনভেনশন দ্বারা,, একটি বাস্তবায়ন যায় . গ ফাইল এক্সটেনশন সহ ফাইল. সাধারণত, হেডার ফাইল ও বাস্তবায়ন ফাইল হাত যান হাতে, তাই যদি আপনি নতুন স্ট্রিং একটি গুচ্ছ ঘোষণা করেছি mystring.h ইন ফাংশান উপস্থিত থাকে, তাহলে আপনি সকল সংজ্ঞায়িত করব mystring যারা কাজ করে. গ. আমি তখন হেডার ফাইল বাস্তবায়ন এবং তারপর হয় কম্পাইল, বস্তুর ফাইল তারপর লিঙ্ক তৈরি করা একসঙ্গে বাইনারি লাইব্রেরি ফাইল উত্পাদন করবে. গ্রন্থাগারের লেখক তারপর বাইনারি ফাইল বরাবর অর্ণবপোত হবে সঙ্গে হেডার ফাইল যাও প্রোগ্রামাররা যারা ব্যবহার করতে চান গ্রন্থাগারের. এই সময়ে, অপরিচিত. গ বাস্তবায়ন ফাইলগুলি না প্রয়োজন ছাড়া প্রথম ধাপ থেকে লাইব্রেরি, তাই recompile তারা প্রায়ই করছি বাকি আউট. যাও 'এ C লাইব্রেরি ব্যবহারের জন্য দুটি জিনিস করতে হবে. প্রথমত, আপনি # গ্রন্থাগারের এর হেডার ফাইল এবং অন্তর্ভুক্ত করা আবশ্যক সোর্স কোড ফাইল যেখানে আপনি ব্যবহার করতে ইচ্ছুক গ্রন্থাগারের এর কোড. এই ঘোষণা সব কম্পাইলার অবগত ফাংশন, ভেরিয়েবল, structs, ইত্যাদি ইত্যাদি, উপস্থিত হেডার ফাইল যাতে কম্পাইলার, এক বীমা করতে পারেন আপনি সঠিক ভাবে করছেন গ্রন্থাগারের এর রিসোর্স ব্যবহার করে, এবং দুই, যথাযথ সমাবেশ কোড জেনারেট. যেখানে গ্রন্থাগারের এর হেডার ফাইল আছে তার উপর নির্ভর করে অবস্থিত, # অন্তর্ভুক্ত সিন্টেক্স পরিবর্তিত হয়. যদি হেডার ফাইল সিস্টেম এর মধ্যে অবস্থিত হয় ডিফল্ট ডিরেক্টরি অন্তর্ভুক্ত করার নির্দেশ - সাধারণত, usr/include-- তারপর কোণ বন্ধনী সিনট্যাক্স, হিসাবে ব্যবহৃত # মধ্যে অন্তর্ভুক্ত করা হয় . যাইহোক, যদি হেডার ফাইল একই মধ্যে অবস্থিত হয় আপনার নিজস্ব কোড হিসাবে ডিরেক্টরি, ডবল মূল্যউদ্ধৃতি সিনট্যাক্স ব্যবহৃত, যেমন # "mylib.h" অন্তর্ভুক্ত. দ্বিতীয় জিনিস আপনি কি বাইনারি এ লিঙ্ক যুক্ত করতে হয় গ্রন্থাগারের ফাইল যখন আপনি আপনার কোড কম্পাইল. এটি একটি সুপার গুরুত্বপূর্ণ পদক্ষেপ. আমাদের সম্পর্কে কিভাবে হেডারের আগে আলোচনা মনে রাখুন ফাইল বাস্তবায়ন কোড কি থাকে না? যদি আপনি এই ধাপটি ছেড়ে এগিয়ে যান তাহলে, আপনি ত্রুটি সম্পর্কে পাবেন অনির্ধারিত আপনার কোড চিহ্ন উল্লেখ করা. এই সমস্যার সমাধানের উদ্দেশ্যে, ব্যবহার-l পতাকা অবিলম্বে অনুসরণ গ্রন্থাগারের ছাড়া নামের একটি স্থান. অন ​​অনেক যন্ত্রপাতি, সি স্ট্যান্ডার্ড সহ সিস্টেম, লাইব্রেরী আপনার জন্য স্বয়ংক্রিয়ভাবে সংযুক্ত. তবে, কখনও কখনও গণিত গ্রন্থাগারের bundled আলাদা এবং যাও-lm সঙ্গে সংযুক্ত করা প্রয়োজন দেখা দিতে পারে. যন্ত্রপাতি অন, আমরা আপনার জন্য এই যত্ন নিতে, এবং আমরা -lcs50 সঙ্গে CS50 লাইব্রেরি লিঙ্ক. আপনি প্রয়োগ যখন আপনি রান করা এই সব দেখতে পারেন. এখন আপনি আপনার জ্ঞান ব্যবহার করতে থাকা উচিত সি মধ্যে লাইব্রেরি মজা বেশি আছে. আমার নাম Nate Hardison, এবং এই CS50.