[Powered by Google Translate] Chức năng này là các phần của mã được sử dụng trong một chương trình lớn hơn
để thực hiện một nhiệm vụ cụ thể.
Họ cũng được biết như thủ tục, thủ tục con, và chương trình con,
kể từ khi họ thực sự chỉ là chương trình mini trong các chương trình.
Mặc dù bạn có thể không nhận thấy,
bạn chắc chắn đã sử dụng chức năng đã được nếu bạn đã được lập trình trong C.
Khi bạn viết công cụ để màn hình bằng cách sử dụng printf,
bạn đang thực sự sử dụng một chức năng được gọi là printf.
Tương tự như vậy, getInt và GetString là chức năng mà CS50 cung cấp cho bạn.
Khi lập trình, chúng tôi sử dụng chức năng đối với một số lý do.
>> Với các chức năng để thực hiện các nhiệm vụ thông thường như văn bản vào màn hình
và khiến người sử dụng cho đầu vào tiết kiệm thời gian khi lập trình.
Nó không cần thiết phải viết code để làm những việc tương tự
kể từ khi họ đã làm cho chúng ta.
Nó thậm chí không cần thiết để chúng tôi hiểu chính xác làm thế nào những chức năng hoạt động nội bộ.
Thay vào đó, chúng tôi chỉ cần biết làm thế nào để sử dụng hoặc gọi cho họ trong các chương trình của chúng tôi.
Nó cũng hữu ích để viết các chức năng trong các chương trình lớn hơn
thậm chí nếu bạn không có kế hoạch có những người khác sử dụng chúng,
chỉ để phân chia nhiệm vụ lớn hơn ở bàn tay.
Bằng cách này, bạn tạo cấu trúc cho mã của bạn giống như bạn muốn tạo cấu trúc cho một bài luận,
và với các dự án thực sự lớn bạn sử nhiều người
để làm việc trên các phần khác nhau cùng một lúc
kể từ khi nó rõ ràng công việc của một người kết thúc và một bắt đầu.
>> Chức năng thường hoạt động trên 1 hoặc nhiều đầu vào, được biết đến như là đối số hoặc các thông số,
chuyển đổi các đầu vào một giá trị đầu ra sau đó trở về.
Tuy nhiên, nó cũng có thể có các chức năng mà không sử dụng bất kỳ đối số đầu vào
và không trả lại một đầu ra.
Được rồi, đủ với những thứ fluffy.
Hãy có một cái nhìn tại một số các chức năng thực sự trong C.
>> Ở đây chúng tôi có một chức năng được gọi là vuông đó, có tin hay không,
tính hình vuông của đầu vào.
Hãy phân tích cú pháp của nó.
Từ đầu tiên bạn nhìn thấy trong chức năng, int,
xác định kiểu trả về của hàm, có nghĩa là, loại C sản lượng chức năng.
Chức năng này sẽ sản xuất một giá trị kiểu int.
Từ kế tiếp bạn thấy là tên của chức năng, hình vuông trong trường hợp này.
Đặt tên các chức năng phù hợp là đặc biệt quan trọng.
kể từ khi nó có thể là các tài liệu hướng dẫn dễ thấy nhất của những gì chức năng nào.
Nó có thể là mát mẻ để tên này Shazam chức năng hoặc Booyah,
nhưng điều đó sẽ không cho chúng tôi biết bất cứ điều gì về chức năng, không có gì.
>> Sau tên hàm đến các yếu tố đầu vào chức năng, các đối số.
Chúng được liệt kê trong một tập hợp các dấu ngoặc đơn
với cả hai loại hình của họ và tên để sử dụng cho họ trong cơ thể của các chức năng.
Quảng trường chỉ mất 1 đối số, int vuông,
mà tôi đã quyết định cung cấp cho các x tên.
Điều này kết thúc phần khai báo hàm hoặc mẫu thử nghiệm.
Các dấu ngoặc nhọn xung quanh phần còn lại của các chức năng
biểu thị sự bắt đầu và kết thúc của các cơ quan chức năng,
định nghĩa của các chức năng chính nó.
Square là một chức năng khá đơn giản.
Nó chỉ có 1 dòng, vì tất cả chúng ta phải làm là nhân x bởi chính nó.
Sự trở lại từ quy định cụ thể giá trị sản lượng và kích hoạt cuối chức năng.
Để sử dụng chức năng vuông, chúng ta cần phải cung cấp các yếu tố đầu vào thích hợp
và sau đó bắt đầu ra.
Ở đây, bạn sẽ thấy một vài cách để làm điều đó.
Chúng tôi có thể vượt qua trong một int thô, giống như 6, hoặc chúng tôi có thể vượt qua trong một biến như một.
Lưu ý rằng mỗi lần chúng ta gọi là hình vuông,
chúng tôi bắt đầu ra trong một biến và sau đó in nó.
Tuy nhiên, chúng tôi không có để lưu trữ giá trị trả về trong một biến và sau đó in.
Chúng tôi chỉ có thể gửi trực tiếp printf là chúng ta làm khi chúng ta vuông 10,
nhưng điều này không có nghĩa là chúng tôi không có quyền truy cập vào giá trị trả lại của hình vuông 10
ở những nơi khác trong mã.
Hãy nhìn vào một ví dụ đơn giản khác.
>> Lần này, chúng tôi sẽ tổng hợp 2 phao lại với nhau để chúng ta có thể nhìn thấy những gì chức năng trông giống như một
khi nó có 2 đầu vào thay vì chỉ 1.
Như bạn có thể thấy, nó không khác nhau nhiều.
Tất cả những gì chúng ta làm là thêm vào tham số thứ 2, một phao có tên là b,
danh sách đối số bằng cách sử dụng dấu phẩy để tách biệt so với đối số đầu tiên, nổi một.
Vì vậy, hình vuông và chức năng tổng hợp của chúng tôi là khá dễ hiểu
bởi vì họ là tương đương với các chức năng mà bạn đã thấy trước trong môn toán lớp.
Bây giờ, hãy nhìn vào một chức năng đó là hơi khác nhau.
Thay vì trả lại một giá trị, nó thay đổi trạng thái.
Điều này được biết là có một tác dụng phụ.
Trong chương trình này, các chức năng printf_fudd_style
có một kiểu trả về mà chúng tôi đã không nhìn thấy trước khi có hiệu lực,.
>> Void được sử dụng để nói rằng một chức năng không trả lại bất cứ điều gì.
Không có biến kiểu void,
vì vậy nếu bạn cố gắng để trở về một cái gì đó từ một chức năng như printf_fudd_style,
trình biên dịch sẽ la lên ở bạn.
Bên trong printf_fudd_style, chúng ta thấy rằng trong khi chức năng vẫn còn thực hiện một nhiệm vụ,
cụ thể là, chuyển đổi tất cả các Rs Ws,
điểm của chức năng là để sửa đổi các chuỗi và sau đó in ra trên màn hình,
thay đổi trạng thái của chương trình thay vì trả lại một kết quả.
Sử dụng chức năng này là rất nhiều như sử dụng hình vuông của chúng tôi và các chức năng tổng hợp,
trừ trường hợp chúng không lưu trữ các kết quả trong một biến hoặc vượt qua nó đi chức năng khác
vì không có kết quả để nói chuyện.
Vì vậy, khi chúng tôi biên dịch và chạy chương trình Elmer Fudd của chúng tôi,
bạn thấy rằng "Bạn vô lại con thỏ!" được chuyển quyền
"Bạn wascally Wabbit!"
>> Cuối cùng, có thêm 1 chức năng đáng thảo luận
kể từ khi bạn đã sử dụng nó trong tất cả các chương trình C bạn đã từng viết, chính.
Chính là một chức năng giống như bất kỳ khác.
Nó có một kiểu trả về, một cái tên, một danh sách các đối số, và một cơ thể.
Kiểu trả về của chính luôn luôn là một int,
và int này được sử dụng để giao tiếp trạng thái của chương trình khi nó kết thúc.
>> Nó chạy thành công, hoặc đã làm nó kết thúc sớm vì một lỗi?
Trở lại không chỉ ra một chạy thành công,
và trả lại bất kỳ giá trị nào khác không cho biết một lỗi.
Tùy thuộc vào loại chương trình bạn đang viết,
trả lại các mã khác nhau cho các lỗi khác nhau có thể hữu ích
cho những người sử dụng chương trình của bạn sau này.
Món chính đối số là một chút phức tạp hơn.
>> Danh sách đối số có thể là trống rỗng,
mà chúng tôi cho thấy bằng cách viết void ở giữa dấu ngoặc đơn,
hoặc danh sách có thể có 2 đối số: một int và một mảng của char * s.
Này được sử dụng khi chương trình của bạn có ý định sử dụng
đối số được truyền trên dòng lệnh khi chương trình được gọi.
Thường được gọi là đối số int argc,
và đó là bằng chiều dài của mảng char *, được gọi là argv.
Argv chứa các đối số dòng lệnh được thông qua vào chương trình.
Trong một thời gian ngắn, chúng tôi sẽ nói về cách sử dụng các biến này chi tiết hơn.
Để bây giờ, bạn có thể cảm thấy tự do để tuyên bố chính một trong hai cách.
Tôi thường chọn để viết nó ra cách ngắn hơn, không có đối số, khi có thể.
>> Bây giờ bạn biết làm thế nào để viết các chức năng,
bạn đang trên con đường của bạn để phát triển lớn hơn, các chương trình phức tạp hơn.
Tên là Nate hardison. Đây là CS50.