SPEAKER 1: Vì vậy, tôi cảm thấy như tôi có xu hướng viết printf hello world hay printf xin chào phần trăm s khá thường xuyên trong các bối cảnh nơi mà tôi muốn in ra một chuỗi, đôi khi yêu cầu sử dụng một phần của chuỗi đó. Vâng, nó sẽ không được tốt đẹp nếu chúng ta tạo ra một chức năng riêng của chúng tôi được gọi là, nói, tên in, mục đích trong cuộc sống chỉ đơn giản là để in dấu phẩy chào cái và bằng cách chấp nhận cái và vì vậy như một đối số cho chức năng đó? Chúng ta có thể khai báo một chức năng riêng của chúng tôi cũng giống như chúng ta có thể trong Scratch như sau. Nói cách khác, giả sử tôi muốn printf tên của bạn và sau đó yêu cầu người sử dụng cho tên của mình với chuỗi s bằng GetString. Và sau đó tôi muốn gọi một chức năng gọi tên in đi qua một như là đầu vào của nó. Bây giờ không may, không có chức năng gọi tên in trong C hoặc trong thư viện CS50. Nhưng không có vấn đề, bởi vì chúng tôi có thể làm cho nó chính mình. Để khai báo một chức năng riêng của chúng tôi và sau đó thực hiện nó, chúng tôi chỉ đơn giản là có thể làm cho một số phòng trong tập tin này và tuyên bố chức năng này như sau, khoảng trống - có nghĩa rằng các chức năng không phải thực sự sẽ trở lại một cái gì đó, mặc dù nó sẽ có một tác dụng phụ - in tên, và sau đó chúng ta hãy chỉ định trong ngoặc là tên in hy vọng một đối số kiểu string. Và nói chung, chúng tôi sẽ suy nghĩ đó là một cái tên. Và chúng ta hãy mở cú đúp của chúng tôi và đóng cú đúp của chúng tôi. Và sau đó printf trong chào dấu phẩy phần trăm mới của tên dòng dấu phẩy. Nói cách khác, mặc dù điều này chức năng chỉ có một dòng mã, nó sao bây giờ có một số cao hơn mục đích cấp độ để in tên của một ai đó với một lời chào. Bây giờ bên trong của chính, thông báo rằng tôi gọi tên in bằng cách đi qua một s. Và vì vậy tôi dường như bây giờ để có một chương trình hoàn chỉnh. Sự khác biệt duy nhất là từ những người khác chúng tôi đã viết là không chỉ làm chương trình này đã chính, nó cũng có một kê khai, thực hiện tên in, một chức năng của riêng tôi. Bây giờ chúng ta biên dịch chương trình của tôi với make chức năng không, và chạy nó với dấu chấm giảm chức năng không. Khi được nhắc cho tên của tôi Tôi sẽ gõ vào David. Và tôi thực sự đang chào đón với "Xin chào, David." Bây giờ, nó quay ra tôi rất cố tình tên in trên tuyên bố chính, do đó nói với C trước rằng có tồn tại một chức năng gọi là in tên để tôi có thể sử dụng nó sau này trong chính. Bây giờ, thay vì tôi đã đặt tên in tại dưới cùng của tập tin của tôi, như tôi thẳng thắn có lẽ nên làm như vậy mà vẫn còn chính điều đầu tiên mà tôi hay người dùng khác nhìn thấy trong mã của tôi, nó chỉ ra rằng mã của tôi là sẽ không biên dịch. Cụ thể, nếu tôi trở lại của tôi cửa sổ terminal và chạy làm cho chức năng không bây giờ, nhận thấy rằng tôi đang mắng. Nếu tôi di chuyển trong cửa sổ thiết bị đầu cuối của tôi, Tôi sẽ gặp lỗi đầu tiên trong màu đỏ, khai tiềm ẩn của chức năng in tên. Bây giờ, điều đó có nghĩa là gì? Tốt, mặc dù tôi đã thực hiện in tên trong tập tin này, tôi đã không thực hiện nó trước khi tôi đã sử dụng nó trong chính. Bây giờ, chúng ta có thể quay trở lại cũ phiên bản và tên in đặt của thực hiện lên hàng đầu. Nhưng tôi có thể thay vì chỉ cung cấp cho C một gợi ý rằng có một chức năng tới. Cụ thể, trên chính tôi có thể khai báo in tên cũng giống như tôi đã làm trước đó, nhưng kết thúc dòng với một dấu chấm phẩy, do đó hứa hẹn sẽ thực hiện nhưng chưa thực sự thực hiện chức năng gọi tên in. Sau đó tôi có thể có chính ở đầu của tôi nộp như tôi hy vọng, và tôi thực sự có thể thực hiện in tên ở phía dưới. Nếu bây giờ tôi quay trở lại cửa sổ thiết bị đầu cuối của tôi và biên dịch lại chức năng không có thực hiện, thời gian này nó biên dịch. Và nếu tôi chạy nó với chức năng chấm dấu gạch chéo không cung cấp tên của tôi, tôi chào đón như "Xin chào, David."