1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> SPEAKER 1: بنابراین من احساس می کنم به تمایل ارسال نامه چون printf سلام جهان یا چون printf 3 00:00:04,010 --> 00:00:08,160 سلام درصد ها اغلب در زمینه های که در آن من می خواهم به نسخه قابل چاپ کردن 4 00:00:08,160 --> 00:00:11,360 رشته، گاهی اوقات پرسیدن بخش کاربر از این رشته است. 5 00:00:11,360 --> 00:00:14,980 خوب، آن را نمی شود خوب اگر ما ایجاد یک تابع از خود ما به نام، 6 00:00:14,980 --> 00:00:19,900 می گویند، نام چاپ، که هدف در زندگی است که به سادگی به چاپ سلام کاما از هم 7 00:00:19,900 --> 00:00:24,560 بنابراین و به همین ترتیب با پذیرش چنین و تا به عنوان آرگومان به آن تابع؟ 8 00:00:24,560 --> 00:00:29,220 ما می توانیم یک تابع از خود ما اعلام فقط ما می توانیم در ابتدا به شرح زیر است. 9 00:00:29,220 --> 00:00:35,280 >> به عبارت دیگر، فرض کنید من می خواهم به چون printf نام خود و سپس از کاربر 10 00:00:35,280 --> 00:00:39,470 برای او یا نام او با رشته ها برابر با GetString. 11 00:00:39,470 --> 00:00:42,060 و بعد من می خواهم برای فراخوانی تابع نام نام چاپ 12 00:00:42,060 --> 00:00:44,340 عبور به عنوان ورودی آن است. 13 00:00:44,340 --> 00:00:47,770 >> در حال حاضر متاسفانه هیچ تابع وجود دارد نام نام چاپ در C و یا در 14 00:00:47,770 --> 00:00:48,950 کتابخانه cs50. 15 00:00:48,950 --> 00:00:51,220 اما مهم نیست، چرا که ما می توانید آن را از خودمان را. 16 00:00:51,220 --> 00:00:54,560 برای تعریف یک تابع از خود ما و سپس آن را پیاده سازی، ما به سادگی می توانید 17 00:00:54,560 --> 00:00:59,000 برخی از اتاق در این پرونده و اعلام این تابع به شرح زیر است، از درجه اعتبار ساقط - 18 00:00:59,000 --> 00:01:01,900 به این مفهوم که تابع نیست در واقع رفتن برای بازگشت به چیزی، 19 00:01:01,900 --> 00:01:03,890 حتی اگر آن را یک عارضه جانبی - 20 00:01:03,890 --> 00:01:08,030 نام چاپ، و سپس اجازه دهید در مشخص پرانتز که نام نسخه قابل چاپ انتظار 21 00:01:08,030 --> 00:01:09,680 استدلال از نوع رشته است. 22 00:01:09,680 --> 00:01:12,180 و به طور کلی، ما فکر می کنم از آن به عنوان یک نام. 23 00:01:12,180 --> 00:01:15,140 >> و اجازه دهید بند ما باز و بسته بند ما. 24 00:01:15,140 --> 00:01:21,930 و پس از آن چون printf در داخل سلام کاما از هم درصد جدید نام خط کاما از هم. 25 00:01:21,930 --> 00:01:24,570 به عبارت دیگر، حتی اگر این تابع فقط یک خط از کد، آن را 26 00:01:24,570 --> 00:01:27,290 می کند در حال حاضر برخی بالاتر سطح هدف به چاپ 27 00:01:27,290 --> 00:01:28,950 نام شخصی با سلام. 28 00:01:28,950 --> 00:01:33,115 >> در حال حاضر در داخل از اصلی، توجه کنید که من تماس نام چاپ با عبور است. 29 00:01:33,115 --> 00:01:35,830 و من به نظر می رسد در حال حاضر به یک برنامه کامل است. 30 00:01:35,830 --> 00:01:38,650 تنها تفاوت این است که از دیگران ما نوشته شده است که نه تنها 31 00:01:38,650 --> 00:01:42,480 این برنامه شده اند اصلی، آن را نیز دارد اعلان و اجرای 32 00:01:42,480 --> 00:01:44,740 نام چاپ، تابعی از خود من است. 33 00:01:44,740 --> 00:01:49,505 >> اجازه دهید در حال حاضر برنامه من با را کامپایل تابع مقدار صفر را، و آن را اجرا کنید که با نقطه 34 00:01:49,505 --> 00:01:51,080 بریده بریده تابع صفر است. 35 00:01:51,080 --> 00:01:53,390 هنگامی که نام من را برانگیخت من در نوع دیوید. 36 00:01:53,390 --> 00:01:55,830 و من در واقع هستم استقبال با "سلام، دیوید." 37 00:01:55,830 --> 00:02:00,160 >> در حال حاضر، که معلوم است که من بسیار به عمد نام و نام خانوادگی اعلام چاپ فوق اصلی، 38 00:02:00,160 --> 00:02:03,860 در نتیجه گفتن C در پیش است که وجود دارد وجود دارد یک تابع به نام چاپ 39 00:02:03,860 --> 00:02:06,930 نام به طوری که من می توانم استفاده آن را در اصلی بعد از آن. 40 00:02:06,930 --> 00:02:11,610 در حال حاضر، بود من به جای نام چاپ در قرار پایین فایل من، به عنوان رک و پوست کنده من 41 00:02:11,610 --> 00:02:15,310 احتمالا باید انجام دهید که بقایای اصلی اولین چیزی که من و یا 42 00:02:15,310 --> 00:02:18,450 کاربر دیگری می بیند در کد من، معلوم است که کد من است 43 00:02:18,450 --> 00:02:19,780 رفتن به کامپایل. 44 00:02:19,780 --> 00:02:23,610 >> به طور خاص، اگر من به بازگشت به من پنجره ترمینال و اجرا را تابع 45 00:02:23,610 --> 00:02:26,120 صفر در حال حاضر، توجه کنید که من در فریاد زد. 46 00:02:26,120 --> 00:02:30,340 اگر من رفته تا در پنجره ترمینال من، من این خطا را برای اولین بار به رنگ قرمز مشاهده کنید، 47 00:02:30,340 --> 00:02:33,120 بیانیه ضمنی نام چاپ عملکرد. 48 00:02:33,120 --> 00:02:34,220 >> در حال حاضر، به چه معنا است؟ 49 00:02:34,220 --> 00:02:37,190 خوب، حتی اگر من اجرا کرده ام نام چاپ در این فایل، من نمی 50 00:02:37,190 --> 00:02:40,080 آن را اجرا قبل از من آن را در اصلی استفاده می شود. 51 00:02:40,080 --> 00:02:43,160 در حال حاضر، ما می تواند به قدیمی بروید نسخه و نام چاپ قرار داده است 52 00:02:43,160 --> 00:02:44,450 بالا پیاده سازی شده است. 53 00:02:44,450 --> 00:02:48,730 >> اما من به جای فقط می توانید را C یک اشاره که یک تابع آمده است وجود دارد. 54 00:02:48,730 --> 00:02:55,390 به طور خاص، فوق اصلی من می توانم اعلام نام چاپ فقط به عنوان I گذشته انجام داد، اما 55 00:02:55,390 --> 00:02:59,450 پایان دادن به خط با نقطه و ویرگول، در نتیجه وعده برای پیاده سازی، اما هنوز رتبهدهی نشده است 56 00:02:59,450 --> 00:03:02,180 در واقع پیاده سازی تابع نام نام نسخه قابل چاپ. 57 00:03:02,180 --> 00:03:05,860 من پس از آن می توانید اصلی در بالای من پرونده من امیدوار، و من در واقع می تواند 58 00:03:05,860 --> 00:03:07,440 پیاده سازی نام چاپ در پایین. 59 00:03:07,440 --> 00:03:12,860 >> اگر من در حال حاضر به پنجره ترمینال باز خواهم گشت و کامپایل مجدد تابع مقدار صفر را با آرایش، 60 00:03:12,860 --> 00:03:14,390 این زمان آن را کامپایل. 61 00:03:14,390 --> 00:03:18,240 و اگر من آن را اجرا با تابع ممیز نقطه صفر ارائه نام من، من هستم 62 00:03:18,240 --> 00:03:20,650 استقبال به عنوان "سلام، دیوید." 63 00:03:20,650 --> 00:03:22,268