1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] Nate HARDISON: প্রোগ্রামিং, একটি লাইব্রেরী হল একটি সংগ্রহ 2 00:00:09,470 --> 00:00:11,380 সম্পর্কিত prewritten কোড. 3 00:00:11,380 --> 00:00:14,350 লাইব্রেরী হল কিভাবে আমরা, প্রোগ্রামাররা, ভাগ এবং সাধারণ 4 00:00:14,350 --> 00:00:16,930 একে অপরের সাথে বিভিন্ন সহায়ক প্রোগ্রাম সঙ্গে কোড, আমরা 5 00:00:16,930 --> 00:00:19,470 , লিখুন এবং এমনকি সঙ্গে বিভিন্ন প্রসেস এ চলমান 6 00:00:19,470 --> 00:00:21,380 আমাদের কম্পিউটারে একই সময়. 7 00:00:21,380 --> 00:00:23,000 >> চলুন একটু এক্সপ্লোর করুন. 8 00:00:23,000 --> 00:00:25,070 আরো সাধারণ ফাংশন যে আপনি সম্ভবত করেছি এক 9 00:00:25,070 --> 00:00:27,500 ব্যবহার করা হয়েছে printf ফাংশন. 10 00:00:27,500 --> 00:00:29,820 এখন printf, কিছু ম্যাজিক ফাংশন যে ছিল না 11 00:00:29,820 --> 00:00:31,670 কম্পিউটারের মধ্যে হার্ড কোডেড - 12 00:00:31,670 --> 00:00:34,320 বরং, এটা সি স্ট্যান্ডার্ড লাইব্রেরী অংশ, যা 13 00:00:34,320 --> 00:00:36,080 ফাংশন একটি সংগ্রহ সাথে 14 00:00:36,080 --> 00:00:38,050 C প্রোগ্রামিং ভাষা. 15 00:00:38,050 --> 00:00:40,920 যেহেতু printf কম্পিউটারের মধ্যে নির্মিত না হয়, তার মানে 16 00:00:40,920 --> 00:00:43,520 কিছু প্রোগ্রামার যিনি প্রকৃতপক্ষে সালে ছিল এবং লিখেছেন 17 00:00:43,520 --> 00:00:46,310 printf ফাংশন এবং মান বাকি সঙ্গে এটি bundled 18 00:00:46,310 --> 00:00:48,880 লাইব্রেরি যাতে ভবিষ্যতে প্রোগ্রামারদের আছে না 19 00:00:48,880 --> 00:00:50,310 অনুরূপ প্রচেষ্টা. 20 00:00:50,310 --> 00:00:52,620 এবং আমরা নিশ্চিত কৃতজ্ঞ যে যে ক্ষেত্রে, কারণ চেক 21 00:00:52,620 --> 00:00:54,710 কতটা কোড এটি আসলে printf বাস্তবায়ন লাগে. 22 00:00:59,590 --> 00:01:02,860 >> সি স্ট্যান্ডার্ড লাইব্রেরী, যা printf একটি অংশ, হয় 23 00:01:02,860 --> 00:01:04,480 সবচেয়ে গুরুত্বপূর্ণ মাধ্যম আপনি 24 00:01:04,480 --> 00:01:06,770 CS50 সামলাবার আছে. 25 00:01:06,770 --> 00:01:08,780 ইন ইনপুট আউটপুট-লাইব্রেরি ছাড়াও যেখানে 26 00:01:08,780 --> 00:01:11,370 printf জীবন, অন্যান্য লাইব্রেরি একটি গুচ্ছ আছে যা 27 00:01:11,370 --> 00:01:14,230 আপনি সম্ভবত ব্যবহার CS50 উপর অবশ্যই করব. 28 00:01:14,230 --> 00:01:16,730 উদাহরণস্বরূপ, স্ট্রিং লাইব্রেরি ফাংশন আছে 29 00:01:16,730 --> 00:01:20,960 সি স্ট্রিং তুলনা, তাদের দ্বারা, এবং তাদের পেতে কনক্যাটেনেট. 30 00:01:20,960 --> 00:01:22,410 গণিত এবং লাইব্রেরী আপনাকে সহায়ক 31 00:01:22,410 --> 00:01:25,062 পাই এবং ই ভালো ধ্রুবক,. 32 00:01:25,062 --> 00:01:27,650 এখন অন্যান্য প্রোগ্রামিং মান লাইব্রেরী, তুলনা 33 00:01:27,650 --> 00:01:31,190 ভাষা, সি স্ট্যান্ডার্ড লাইব্রেরী সত্যিই ছোট, 34 00:01:31,190 --> 00:01:34,060 কিন্তু এখনও তারা একটি উপাদান উল্লেখযোগ্য পরিমাণ আছে. 35 00:01:34,060 --> 00:01:36,370 এবং যে যে স্ট্যান্ডার্ড লাইব্রেরী বলতে হয় না 36 00:01:36,370 --> 00:01:39,020 শুধুমাত্র সি লাইব্রেরি; আছে অনেক আরও আছে 37 00:01:39,020 --> 00:01:42,460 বিশ্বের জন্য আপনি CS50 লাইব্রেরী সহ, ব্যবহার, 38 00:01:42,460 --> 00:01:45,150 ডিক্রিপশন এবং এনক্রিপশন সঙ্গে মানচিত্রনির্মানবিদ্যা লাইব্রেরি 39 00:01:45,150 --> 00:01:48,000 ফাংশন ফাংশন সঙ্গে, লাইব্রেরী এবং সঙ্কেতাক্ষরে লিখা 40 00:01:48,000 --> 00:01:50,970 ভিডিও প্লে ব্যাক, এবং তাই. 41 00:01:50,970 --> 00:01:53,190 >> এটি একটি গুরুত্বপূর্ণ সরাইয়া আমাদের এনেছে. 42 00:01:53,190 --> 00:01:55,500 প্রকৌশল অপরিহার্য দক্ষতার এক হয় বুদ্ধিমান 43 00:01:55,500 --> 00:01:58,090 আপনার সরঞ্জাম উপলব্ধ টুলবাক্স যাতে আপনি ব্যবহার করতে পারেন 44 00:01:58,090 --> 00:01:59,850 তাদের এবং যদি না চাকা reinventing এড়ানো 45 00:01:59,850 --> 00:02:01,510 আপনি সেটা আছে. 46 00:02:01,510 --> 00:02:04,120 প্রোগ্রামারদের হিসাবে, লাইব্রেরীগুলো হল সবচেয়ে গুরুত্বপূর্ণ এক 47 00:02:04,120 --> 00:02:05,520 আমরা সরঞ্জাম আছে. 48 00:02:05,520 --> 00:02:08,520 আপনি যখন নিজেকে খুঁজে পেতে একটি টাস্ক যে মনে ক্লান্তিকর অথবা সম্মুখীন 49 00:02:08,520 --> 00:02:11,940 প্রাকৃত, ভালো একটি সি স্ট্রিং এর দৈর্ঘ্য ফাইন্ডিং, আপনি 50 00:02:11,940 --> 00:02:14,020 নিজেকে জিজ্ঞাসা যদি এটি মামলা হতে পারে যে 51 00:02:14,020 --> 00:02:16,520 কেউ ইতোমধ্যেই একই জিনিস হয়ে গেছে আগে. 52 00:02:16,520 --> 00:02:17,760 হতে পারে যে আপনি কিছু খুঁজে পাইনি 53 00:02:17,760 --> 00:02:20,110 একটি লাইব্রেরি মধ্যে সাহায্য. 54 00:02:20,110 --> 00:02:23,260 >> তাই পরিভাষা মধ্যে, একটি লাইব্রেরি একটি বাইনারি ফাইল 55 00:02:23,260 --> 00:02:26,210 করেনি লিঙ্ক একটি সংগ্রহ একসঙ্গে দ্বারা উত্পাদিত হয়েছে 56 00:02:26,210 --> 00:02:28,880 বস্তুর একটি টুল ব্যবহার করে ফাইল বলা হয়, আপনি 57 00:02:28,880 --> 00:02:31,010 এটি, linker অনুমিত. 58 00:02:31,010 --> 00:02:33,830 অবজেক্ট ফাইলগুলি. ণ ফাইল পাবেন যখন আপনি 59 00:02:33,830 --> 00:02:35,860 সি সোর্স কোড কম্পাইল. 60 00:02:35,860 --> 00:02:38,420 যখন প্রোগ্রামাররা লাইব্রেরি লিখুন, তারা সাধারণত 61 00:02:38,420 --> 00:02:41,560 ফাইল দুই ধরনের মধ্যে তাদের সি কোড আলাদা: 62 00:02:41,560 --> 00:02:44,880 হেডার ফাইল ও বাস্তবায়ন ফাইল. 63 00:02:44,880 --> 00:02:49,820 একটি কনভেনশন দ্বারা হেডার ফাইলটি. জ ফাইল এক্সটেনশন দেওয়া হয়, 64 00:02:49,820 --> 00:02:51,940 এবং এটি যে কোড লাইব্রেরি এর ঘোষণা রয়েছে 65 00:02:51,940 --> 00:02:55,120 সম্পদের জন্য উপলব্ধ করার জন্য আপনাকে ব্যবহার করার জন্য. 66 00:02:55,120 --> 00:02:58,830 এই সংস্থানগুলি ফাংশন, ভেরিয়েবল, structs অন্তর্ভুক্ত, 67 00:02:58,830 --> 00:03:01,980 টাইপ সংজ্ঞা, এবং তাই, এবং একসঙ্গে, তারা 68 00:03:01,980 --> 00:03:04,620 হিসাবে ইন্টারফেস সাধারণভাবে বলা হয়. 69 00:03:04,620 --> 00:03:07,280 বস্তুত, যদি আপনি কি কখনো হতাশ করছি একটি লাইব্রেরি কি, 70 00:03:07,280 --> 00:03:09,580 হেডার ফাইল জায়গা চেহারা. 71 00:03:09,580 --> 00:03:14,030 >> উদাহরণস্বরূপ, আপনি usr থামা / অন্তর্ভুক্ত / পারেন stdio.h এবং চেক 72 00:03:14,030 --> 00:03:16,210 সবকিছু আউট আপনি কি কখনও সম্পর্কে জানতে চেয়েছেন 73 00:03:16,210 --> 00:03:18,570 প্রমিত IO লাইব্রেরি. 74 00:03:18,570 --> 00:03:20,610 এখানে একটি বিষয় নিয়ে অনেক কিছু আছে, এবং এটি একটি বিট গ্রহণ করতে পারেন 75 00:03:20,610 --> 00:03:22,420 সময় মাধ্যমে Wade যাও. 76 00:03:22,420 --> 00:03:25,840 সাথে Google এবং manpages বরাবর যাইহোক, এই হল 77 00:03:25,840 --> 00:03:28,060 যদি আপনি হতাশ করছি যান লিখুন কিভাবে স্ট্যান্ডার্ড ইনপুট / আউটপুট 78 00:03:28,060 --> 00:03:30,460 গ্রন্থাগারের ফাংশন কাজ. 79 00:03:30,460 --> 00:03:33,910 তাই এক কী জিনিস মনে রাখবেন এখানে যদিও, যে হেডার ফাইল 80 00:03:33,910 --> 00:03:36,740 সাধারণত ফাংশন সংজ্ঞা কি অন্তর্ভুক্ত নয় - 81 00:03:36,740 --> 00:03:40,020 যে, প্রকৃত বাস্তবায়নের ফাংশন. 82 00:03:40,020 --> 00:03:42,470 এটি একটি গুরুত্বপূর্ণ কম্পিউটার বিজ্ঞানের একটি চিত্রণ 83 00:03:42,470 --> 00:03:45,700 নীতি তথ্য লোকানোর বলা হয়, এ ও বলা হয় 84 00:03:45,700 --> 00:03:48,960 encapsulation হিসাবে বার. 85 00:03:48,960 --> 00:03:52,630 >> একটি লাইব্রেরি ব্যবহারকারী বা ক্লায়েন্ট হিসাবে, আপনাকে করতে হবে না 86 00:03:52,630 --> 00:03:54,230 গ্রন্থাগারের internals সম্পর্কে জ্ঞান 87 00:03:54,230 --> 00:03:55,380 এটি ব্যবহার করার জন্য আদেশ দেয়া হয়. 88 00:03:55,380 --> 00:03:57,800 এইজন্য printf শুধুমাত্র একটি বিট আগে মনে রাখুন? 89 00:03:57,800 --> 00:04:00,275 যদি কখনও কোন প্রকৃত কোড দেখা যায় আগে? 90 00:04:00,275 --> 00:04:02,535 ওয়েল, আমি ধরে নিই যে আপনি আছে না, যদিও আপনার উদ্যম 91 00:04:02,535 --> 00:04:05,090 বার printf টন ব্যবহার করেছেন. 92 00:04:05,090 --> 00:04:08,110 আপনার জানা ছিল ছিল ফাংশান উপস্থিত ঘোষণা 93 00:04:08,110 --> 00:04:10,940 মধ্যে stdio.h হেডার ফাইলটি. 94 00:04:10,940 --> 00:04:14,010 যাই হোক, ভাল তথ্য লোকানোর সুবিধা হয় যে আপনি 95 00:04:14,010 --> 00:04:16,820 এবং প্রোগ্রাম আপনি লিখুন কোন পরিবর্তন থেকে ভালভাবে উত্তাপ হয় 96 00:04:16,820 --> 00:04:20,209 গ্রন্থাগারের ফাংশন প্রয়োগের কোড. 97 00:04:20,209 --> 00:04:22,880 যদি printf পরিবর্তন বাস্তবায়ন, আপনার কাছে নেই 98 00:04:22,880 --> 00:04:26,310 যেতে পারেন এবং আপনার যেসব প্রোগ্রাম ব্যবহার printf সব পরিবর্তন. 99 00:04:26,310 --> 00:04:28,450 >> তাই বাস্তবায়ন যেখানে যান না? 100 00:04:28,450 --> 00:04:31,020 ভাল, আবার কনভেনশন দ্বারা,, একটি বাস্তবায়ন যায় 101 00:04:31,020 --> 00:04:34,310 . গ ফাইল এক্সটেনশন সহ ফাইল. 102 00:04:34,310 --> 00:04:36,820 সাধারণত, হেডার ফাইল ও বাস্তবায়ন ফাইল হাত যান 103 00:04:36,820 --> 00:04:39,380 হাতে, তাই যদি আপনি নতুন স্ট্রিং একটি গুচ্ছ ঘোষণা করেছি 104 00:04:39,380 --> 00:04:42,950 mystring.h ইন ফাংশান উপস্থিত থাকে, তাহলে আপনি সকল সংজ্ঞায়িত করব 105 00:04:42,950 --> 00:04:46,960 mystring যারা কাজ করে. গ. 106 00:04:46,960 --> 00:04:49,230 আমি তখন হেডার ফাইল বাস্তবায়ন এবং তারপর হয় 107 00:04:49,230 --> 00:04:52,230 কম্পাইল, বস্তুর ফাইল তারপর লিঙ্ক তৈরি করা 108 00:04:52,230 --> 00:04:55,360 একসঙ্গে বাইনারি লাইব্রেরি ফাইল উত্পাদন করবে. 109 00:04:55,360 --> 00:04:58,520 গ্রন্থাগারের লেখক তারপর বাইনারি ফাইল বরাবর অর্ণবপোত হবে 110 00:04:58,520 --> 00:05:00,720 সঙ্গে হেডার ফাইল যাও প্রোগ্রামাররা যারা ব্যবহার করতে চান 111 00:05:00,720 --> 00:05:02,280 গ্রন্থাগারের. 112 00:05:02,280 --> 00:05:04,640 এই সময়ে, অপরিচিত. গ বাস্তবায়ন ফাইলগুলি না 113 00:05:04,640 --> 00:05:07,840 প্রয়োজন ছাড়া প্রথম ধাপ থেকে লাইব্রেরি, তাই recompile 114 00:05:07,840 --> 00:05:10,270 তারা প্রায়ই করছি বাকি আউট. 115 00:05:10,270 --> 00:05:13,670 >> যাও 'এ C লাইব্রেরি ব্যবহারের জন্য দুটি জিনিস করতে হবে. 116 00:05:13,670 --> 00:05:16,890 প্রথমত, আপনি # গ্রন্থাগারের এর হেডার ফাইল এবং অন্তর্ভুক্ত করা আবশ্যক 117 00:05:16,890 --> 00:05:18,700 সোর্স কোড ফাইল যেখানে আপনি ব্যবহার করতে ইচ্ছুক 118 00:05:18,700 --> 00:05:20,530 গ্রন্থাগারের এর কোড. 119 00:05:20,530 --> 00:05:23,200 এই ঘোষণা সব কম্পাইলার অবগত 120 00:05:23,200 --> 00:05:26,890 ফাংশন, ভেরিয়েবল, structs, ইত্যাদি ইত্যাদি, উপস্থিত 121 00:05:26,890 --> 00:05:30,510 হেডার ফাইল যাতে কম্পাইলার, এক বীমা করতে পারেন 122 00:05:30,510 --> 00:05:33,280 আপনি সঠিক ভাবে করছেন গ্রন্থাগারের এর রিসোর্স ব্যবহার করে, 123 00:05:33,280 --> 00:05:37,120 এবং দুই, যথাযথ সমাবেশ কোড জেনারেট. 124 00:05:37,120 --> 00:05:38,910 যেখানে গ্রন্থাগারের এর হেডার ফাইল আছে তার উপর নির্ভর করে 125 00:05:38,910 --> 00:05:42,720 অবস্থিত, # অন্তর্ভুক্ত সিন্টেক্স পরিবর্তিত হয়. 126 00:05:42,720 --> 00:05:44,880 যদি হেডার ফাইল সিস্টেম এর মধ্যে অবস্থিত হয় 127 00:05:44,880 --> 00:05:46,690 ডিফল্ট ডিরেক্টরি অন্তর্ভুক্ত করার নির্দেশ - 128 00:05:46,690 --> 00:05:48,780 সাধারণত, usr/include-- 129 00:05:48,780 --> 00:05:52,200 তারপর কোণ বন্ধনী সিনট্যাক্স, হিসাবে ব্যবহৃত # মধ্যে অন্তর্ভুক্ত করা হয় 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 যাইহোক, যদি হেডার ফাইল একই মধ্যে অবস্থিত হয় 132 00:05:59,540 --> 00:06:02,960 আপনার নিজস্ব কোড হিসাবে ডিরেক্টরি, ডবল মূল্যউদ্ধৃতি সিনট্যাক্স 133 00:06:02,960 --> 00:06:04,870 ব্যবহৃত, যেমন # "mylib.h" অন্তর্ভুক্ত. 134 00:06:08,630 --> 00:06:11,220 >> দ্বিতীয় জিনিস আপনি কি বাইনারি এ লিঙ্ক যুক্ত করতে হয় 135 00:06:11,220 --> 00:06:13,760 গ্রন্থাগারের ফাইল যখন আপনি আপনার কোড কম্পাইল. 136 00:06:13,760 --> 00:06:15,810 এটি একটি সুপার গুরুত্বপূর্ণ পদক্ষেপ. 137 00:06:15,810 --> 00:06:17,540 আমাদের সম্পর্কে কিভাবে হেডারের আগে আলোচনা মনে রাখুন 138 00:06:17,540 --> 00:06:20,200 ফাইল বাস্তবায়ন কোড কি থাকে না? 139 00:06:20,200 --> 00:06:22,200 যদি আপনি এই ধাপটি ছেড়ে এগিয়ে যান তাহলে, আপনি ত্রুটি সম্পর্কে পাবেন 140 00:06:22,200 --> 00:06:24,990 অনির্ধারিত আপনার কোড চিহ্ন উল্লেখ করা. 141 00:06:24,990 --> 00:06:29,580 এই সমস্যার সমাধানের উদ্দেশ্যে, ব্যবহার-l পতাকা অবিলম্বে অনুসরণ 142 00:06:29,580 --> 00:06:32,320 গ্রন্থাগারের ছাড়া নামের একটি স্থান. 143 00:06:32,320 --> 00:06:35,410 অন ​​অনেক যন্ত্রপাতি, সি স্ট্যান্ডার্ড সহ সিস্টেম, 144 00:06:35,410 --> 00:06:38,350 লাইব্রেরী আপনার জন্য স্বয়ংক্রিয়ভাবে সংযুক্ত. 145 00:06:38,350 --> 00:06:41,700 তবে, কখনও কখনও গণিত গ্রন্থাগারের bundled আলাদা 146 00:06:41,700 --> 00:06:44,600 এবং যাও-lm সঙ্গে সংযুক্ত করা প্রয়োজন দেখা দিতে পারে. 147 00:06:44,600 --> 00:06:47,760 যন্ত্রপাতি অন, আমরা আপনার জন্য এই যত্ন নিতে, এবং আমরা 148 00:06:47,760 --> 00:06:52,170 -lcs50 সঙ্গে CS50 লাইব্রেরি লিঙ্ক. 149 00:06:52,170 --> 00:06:54,540 আপনি প্রয়োগ যখন আপনি রান করা এই সব দেখতে পারেন. 150 00:06:57,620 --> 00:06:59,130 >> এখন আপনি আপনার জ্ঞান ব্যবহার করতে থাকা উচিত 151 00:06:59,130 --> 00:07:02,150 সি মধ্যে লাইব্রেরি মজা বেশি আছে. 152 00:07:02,150 --> 00:07:05,880 আমার নাম Nate Hardison, এবং এই CS50.