1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] నేట్ 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 సి ప్రోగ్రామింగ్ భాష. 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 ఫంక్షన్ మరియు ప్రామాణిక మిగిలిన దానిని కొట్టగా 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 ఒక భాగమైన యొక్క C ప్రామాణిక లైబ్రరీస్, ఉన్నాయి 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 సి తీగలను పోల్చడం వారి పొడవు పొందండి, మరియు వాటిని concatenate. 30 00:01:20,960 --> 00:01:22,410 మరియు గణిత లైబ్రరీ మీరు ఉపయోగపడిందా ఇస్తుంది 31 00:01:22,410 --> 00:01:25,062 pi మరియు ఇ వంటి స్థిరాంకాలు. 32 00:01:25,062 --> 00:01:27,650 ఇప్పుడు, ఇతర కార్యక్రమాలు ప్రామాణిక గ్రంథాలయాలు పోలిస్తే 33 00:01:27,650 --> 00:01:31,190 భాషలు, C ప్రామాణిక లైబ్రరీస్, నిజంగా చిన్న ఉంటాయి 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 వాటిని మరియు తప్ప చక్రం పునరుద్ధరించుకుంటూ నివారించడానికి 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 సాధారణ, C స్ట్రింగ్ యొక్క పొడవు కనుగొనడంలో వంటి, మీరు 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 ఇది లింకర్ నిమ్మన. 58 00:02:31,010 --> 00:02:33,830 ఆబ్జెక్ట్ ఫైళ్లను ఉంటాయి. O ​​ఫైళ్ళను మీరు మీరు పొందుతారు 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 సాంప్రదాయకంగా ఒక శీర్షికా ఫైలును. H ఫైల్ పొడిగింపు ఇవ్వబడుతుంది 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 ఇక్కడ లో stuff చాలా, మరియు ఇది ఒక బిట్ పడుతుంది 75 00:03:20,610 --> 00:03:22,420 ద్వారా వాడే సమయం. 76 00:03:22,420 --> 00:03:25,840 అయితే, Google మరియు manpages పాటు ఈ ఉంది 77 00:03:25,840 --> 00:03:28,060 మీరు వొండరింగ్ మీరు సందర్శించాల్సిన ప్రదేశంగా ఎలా ప్రామాణిక I / O 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 తొడుగు వంటి సార్లు. 85 00:03:48,960 --> 00:03:52,630 >> ఒక లైబ్రరీ యొక్క వినియోగదారు లేదా క్లయింట్, మీరు లేదు 86 00:03:52,630 --> 00:03:54,230 గ్రంధాలయం అంతర్గత గురించి 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 Well, నేను మీరు వాటిని అయినప్పటికీ, మీరు కలిగి భావిస్తాయి 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 Well, మళ్ళీ, కన్వెన్షన్ ప్రకారం, అమలు ఒక వెళుతుంది 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 కాబట్టి, మొదటి నుండి లైబ్రరీ మళ్ళీ కంపైల్ చెయ్యండి తప్ప, అవసరమైన 114 00:05:07,840 --> 00:05:10,270 వారు తరచుగా దూరంగా ఉన్నాము. 115 00:05:10,270 --> 00:05:13,670 >> C library ఉపయోగించడానికి, మీరు రెండు పనులు ఉన్నాయి. 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, et సెటేరా, ప్రస్తుతం 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 ఉపకరణం, C ప్రామాణిక అనేక వ్యవస్థలు, న 144 00:06:35,410 --> 00:06:38,350 లైబ్రరీస్ స్వయంచాలకంగా మీ కొరకు లింక్. 145 00:06:38,350 --> 00:06:41,700 అయితే, గణిత లైబ్రరీ కొన్నిసార్లు విడిగా కొట్టగా ఉంది 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 C. గ్రంథాలయాల అన్వేషించడం ఆనందించండి. 152 00:07:02,150 --> 00:07:05,880 నా పేరు నేట్ Hardison, మరియు ఈ CS50 ఉంది.