Xin chào, và chào mừng trở lại.
Trong bài giảng này, tôi muốn nói về việc xác định các chức năng trong c.
Xác định một chức năng.
Chúng tôi biết tầm quan trọng của các chức năng.
Chúng tôi hiểu những lợi thế.
Chúng tôi sẽ muốn sử dụng các chức năng trong chương trình của chúng tôi.
Vì vậy, khi bạn tạo một hàm chuyên nghiệp trong c, bạn phải chỉ
định tiêu đề hàm là dòng đầu tiên định nghĩa của hàm.
Chúng ta sẽ nói về việc xác định một hàm và chúng ta
cũng sẽ nói về việc triển khai một hàm.
Thực hiện một chức năng chỉ là giải quyết vấn đề, nó
chỉ là mã c thông thường.
Xác định một chức năng đang nói rằng chức năng tồn tại.
Vì vậy, khi bạn xác định một hàm, điều đầu tiên bạn làm
là bạn có tiêu đề hàm đó và sau đó bạn làm theo với một dấu ngoặc nhọn bắt
đầu mã khối cho hàm.
Vì vậy, nó giống như khi bạn sử dụng dấu ngoặc nhọn
trong câu lệnh if, giống như khi bạn sử dụng dấu ngoặc nhọn trong vòng lặp for, ngoại trừ dấu ngoặc nhọn
là bắt buộc đối với các hàm.
Không có loại bỏ nó.
Và nó luôn báo hiệu sự bắt đầu của mã cho chức năng đó.
Bất cứ điều gì trong khoảng thời gian bắt đầu và dấu ngoặc nhọn kết
thúc là mã cho hàm.
Đó là nơi bạn đang đi để triển khai nhiệm vụ.
Vì vậy, giữa các niềng răng là được gọi là phần thân của hàm và dòng đầu
tiên của hàm được gọi là tiêu đề hàm.
Tiêu đề hàm xác định tên của hàm, các tham
số của hàm.
Chúng ta sẽ nói về các tham số và đối số một cách chi tiết.
Nhưng ngay bây giờ, bạn chỉ cần biết rằng có một
thứ gọi là tham số.
Và tham số sẽ chỉ định số lượng và các loại giá trị
mà bạn có thể truyền dữ liệu, tham số liên quan đến việc truyền dữ liệu.
Loại cho giá trị mà hàm trả về.
Chúng tôi đã đề cập rằng các chức năng chúng tôi có thể trả lại dữ liệu.
Vì vậy, trong tiêu đề hàm đó, bạn
sẽ có tên của hàm, dữ liệu bạn có thể lấy có thể được chấp nhận bởi
chức năng và dữ liệu được trả về bởi hàm.
Chúng tôi sẽ không tập trung ngay bây giờ về dữ liệu có thể được chuyển hoặc dữ
liệu được trả về, chúng tôi sẽ nói về việc tạo một hàm đơn giản.
Phần thân hàm chứa chỉ là mã thông thường và mã đó được
thực thi khi bạn gọi hoặc gọi hàm.
Và chính cơ quan chức năng sẽ có quyền truy cập vào bất kỳ giá trị nào được
chuyển dưới dạng đối số.
Vì vậy, dữ liệu mà bạn chuyển đến nó, bạn có thể sử dụng dữ
liệu đó bên trong phần thân của hàm.
Nó trông như thế nào này, tiêu đề hàm.
Tiêu đề hàm có từ đầu tiên.
Và tiêu đề hàm là một từ khóa đại diện cho loại
dữ liệu sẽ trả về từ hàm.
Từ khóa tiếp theo có tên của hàm.
Và sau đó bạn có một dấu ngoặc đơn bên trái và sau đó bạn có các tham số được
phân tách bằng dấu phẩy, đó sẽ là dữ liệu được chuyển cho hàm.
Và sau đó bạn có điều đó ngoặc phải
để kết thúc tiêu đề hàm.
Sau đó, bạn có dấu ngoặc nhọn điều đó báo hiệu việc bắt
đầu triển khai chức năng.
Và bạn có bất kỳ số câu lệnh để thực hiện một nhiệm vụ.
Như tôi đã nói, bạn muốn có chức năng của bạn nhỏ.
Họ muốn được gắn kết.
Họ không muốn trở thành khắp nơi.
Họ muốn có một đĩa đơn tập trung, làm điều gì đó cụ thể.
Như tôi đã nói nếu bạn có một chức năng nhận đầu vào, nó đọc đầu vào.
Nó không in ra đầu ra.
Nó không thực hiện bất kỳ phân loại nào hoặc không làm bất cứ điều gì khác.
Nếu bạn có một chức năng có tên sắp xếp, nó sắp xếp dữ liệu.
Nó không nhận được đầu vào.
Các chức năng cần phải cố kết và nhỏ.
Thật dễ dàng hơn nhiều để gỡ lỗi những các chức năng, vì vậy hãy làm cho chúng gắn kết với nhau.
Và sau đó bạn có quyền đó dấu ngoặc nhọn,
kết thúc việc triển khai hàm.
Đó là những gì một chức năng trông giống như trong c.
Bây giờ chúng ta hãy tập trung vào chức năng tên và chúng ta sẽ nói về
các tham số và kiểu trả về sau.
Dòng đầu tiên của hàm một lần nữa định nghĩa cho trình biên dịch theo thứ
tự từ trái sang phải ba điều về chức năng, như tôi đã đề cập.
Loại giá trị trả về, tên của hàm và sau đó là bất kỳ
dữ liệu nào mà nó chiếm.
Đây chỉ là để tóm tắt, đó là quan trọng.
Đối với tên chức năng, bạn muốn để chọn các tên hàm có ý nghĩa.
Nó cũng quan trọng như việc lựa chọn tên biến có ý nghĩa.
Nó ảnh hưởng rất nhiều đến khả năng đọc của chương trình, vì
vậy không đặt tên cho các hàm x hoặc y.
Đặt tên cho chức năng dựa trên về những gì nó sẽ làm.
Nếu nó thêm hai số, đặt tên cho nó thêm.
Nếu nó trừ đi hai số, đặt tên nó trừ.
Trong ví dụ này, đây là chức năng đơn giản của chúng tôi.
Đừng lo lắng về khoảng trống, chỉ lo về cái tên ở đây.
Chúng tôi có một chức năng tin nhắn in có tên.
Và sau đó chúng ta thấy rằng dấu ngoặc nhọn biểu
thị sự bắt đầu của chức năng và sau đó chúng tôi có một số triển khai.
Và việc triển khai này không làm gì khác hơn
là hiển thị một chuỗi, một văn bản.
Và sau đó chúng tôi có điều đó dấu ngoặc nhọn bên phải.
Vì vậy, đây là một chức năng rất đơn giản không làm được gì nhiều, nó hiển thị đầu ra.
Trong ví dụ này cho bản in thông báo, dòng đầu tiên
của thông báo in cho trình biên dịch rằng hàm không trả về giá trị nào.
Đó là từ khóa void.
Một lần nữa, không cần tập trung vào đó, nhưng đó là những gì đang làm.
Tiếp theo là tên.
Và sau đó tên là đối số, chúng được gọi là tham số.
Và chúng tôi sử dụng lại từ khóa void nếu chúng tôi không chuyển bất kỳ dữ liệu nào.
Câu lệnh trong hàm cơ thể có thể không có, nhưng niềng
răng phải luôn có mặt.
Vì vậy, bạn không cần phải thực sự có bất kỳ thực hiện, nhưng bạn phải niềng
răng cho một chức năng ở đó.
Nếu không có câu lệnh nào trong phần thân của một hàm, kiểu
trả về phải là void.
Và một lần nữa, chúng ta sẽ tập trung vào vấn đề này sau và chức năng sẽ không làm bất cứ điều
gì bởi vì bạn không có triển khai.
Nếu bạn xác định một hàm với một cơ thể trống rỗng, nó vẫn có thể hữu
ích mặc dù nó không hoàn thành bất cứ điều gì.
Bạn thường làm điều đó trong giai đoạn thử nghiệm của một chương trình rất lớn.
Và điều này cho phép bạn làm là bạn có thể chạy chương trình chỉ
với một số chức năng thực sự làm điều gì đó, giúp bạn kiểm
tra tốt hơn, giúp bạn tách biệt các lỗi.
Bạn thậm chí có thể có triển khai trong bài kiểm tra trong cơ thể
chức năng nhưng chỉ cần nhận xét nó ra.
Và sau đó bạn có thể làm điều này cách tiếp cận phân chia và chinh phục.
Khi bạn kiểm tra ngày càng nhiều và hơn nữa, sau đó bạn có thể bắt đầu đưa việc triển
khai vào các cơ quan chức năng.
Đó là một bước quá trình làm việc.
Bạn đang liên tục làm việc với quy mô nhỏ phần, thêm mã, kiểm tra mã đó và sau đó chuyển sang phần tiếp theo
bước và sau đó toàn bộ quá trình triển khai sẽ được hoàn
thành và tất cả các chức năng sẽ được thực hiện.
Vì vậy, có một trường hợp sử dụng cho có một cơ quan chức
năng không có mã hoặc nhận xét ra ngoài.
Đặt tên cho các chức năng.
Tên của một hàm có thể là bất kỳ tên hợp pháp nào.
Giống như khi bạn đặt tên cho một biến, bạn không
thể sử dụng các từ dành riêng.
Vì vậy, đây là những từ khóa trong ngôn ngữ chẳng hạn như enter double vì
chúng đại diện cho các kiểu dữ liệu.
Sizeof là một toán tử.
Bạn muốn có thể để sử dụng nó cho hoặc nếu.
Bạn cũng không thể có hai các chức năng trùng tên.
Và điều này cũng được giới thiệu như là quá tải chức năng, loại.
Nhưng bạn không thể có hai chức năng có cùng tên, quá tải không được
hỗ trợ trong c.
Cuối cùng, bạn có thể có tên như một hàm trong
hàm thư viện chuẩn.
Về mặt kỹ thuật, nếu bạn không bao gồm thư viện đó bao gồm tệp tiêu đề,
bạn có thể có nó.
Nhưng nếu bạn thực sự muốn sử dụng chức năng thư viện đó, trình biên
dịch sẽ phàn nàn và nói rằng bạn có hai hàm trùng tên.
Vì vậy, đừng đặt tên cho các chức năng của bạn là giống như các chức năng thư viện tiêu chuẩn.
Tên pháp lý giống với một biến, một chuỗi các chữ cái
và chữ số để bắt đầu.
Ký tự đầu tiên phải là một chữ cái và chữ cái có thể là một dấu gạch dưới.
Bạn không thể bắt đầu các chức năng với các con số hoặc bất kỳ loại ký
tự kỳ lạ nào.
Tên mà bạn chọn nên có ý nghĩa và phù hợp với những
gì chức năng thực hiện.
Tôi đã nói điều này rồi, tôi đang lặp lại nó để nhấn mạnh, những cái tên có
ý nghĩa là rất quan trọng.
Bạn thường sẽ xác định chức năng tên và tên biến cũng bao
gồm nhiều hơn một từ.
Vì vậy, bây giờ tôi muốn nói một chút một chút về phong cách viết mã.
Bạn có thể đã nhận ra khi tôi đã viết mã của tôi mà tôi sử dụng trường hợp lạc đà.
Có ba cách khác nhau bạn có thể viết tên của các
biến và hàm của bạn.
Bạn có thể tách từng từ trong tên hàm với một ký tự
được gạch dưới, đó là một cách tiếp cận.
Bạn có thể viết hoa chữ cái đầu tiên của mỗi từ hoặc
bạn có thể viết hoa các từ sau từ đầu tiên và bạn vẫn có strum với nhau.
Hãy nhớ rằng, bạn không thể có khoảng trắng ở giữa.
Đây chỉ là một cách tiếp cận cho đặt tên
vì điều quan trọng là bạn phải tuân theo một số quy ước để dễ đọc hơn.
Chỉ có một từ dài với năm từ khác nhau.
Vì vậy, nếu bạn có một hàm cho biết kiểm tra đầu vào hợp lệ, bạn sẽ không
muốn có tất cả các chữ thường.
Nó thực sự khó đọc và xác định vị trí của các từ.
Vì vậy, hộp đựng lạc đà là một cách để xác định vị trí của các từ trong
nhiều từ và nó dễ dàng nhìn thấy chức năng đó đang làm gì.
Một dấu gạch dưới là một cách tách các từ.
Và viết hoa chữ cái đầu tiên của mỗi từ là một cách khác để tách biệt.
Điều quan trọng là có thể tách các từ trong một hàm
để dễ đọc hơn.
Tôi thường sử dụng hộp đựng lạc đà.
Và khi bạn sử dụng một trong những quy ước, bạn muốn sử dụng nó
cho mọi thứ, bạn muốn sử dụng nó để đặt tên cho các biến, bạn muốn sử
dụng nó cho các tên hàm của mình.
Thông thường, bạn chỉ làm theo điều này quy ước mã hóa chung, nó làm cho
mọi thứ dễ đọc hơn.
Các nguyên mẫu hàm.
Chúng ta đã nói về việc xác định một hàm.
Còn về việc khai báo một hàm.
Bạn có thể nói tại sao bạn cần khai báo một hàm, không phải bạn khai
báo nó khi bạn định nghĩa nó.
Nhưng cũng có một khái niệm khai báo một hàm.
Và nó cần thiết nếu bạn muốn để sử dụng chức năng trước khi nó được triển
khai, trước khi nó được định nghĩa.
Vì vậy, một nguyên mẫu hàm là một câu lệnh xác định một hàm.
Nó nói với trình biên dịch về cơ bản tất cả các chi tiết của chức năng.
Nó xác định tên, kiểu trả về và loại của từng tham số của nó.
Vì vậy, nó trông giống như một tiêu đề hàm.
Nó cung cấp tất cả các bên ngoài thông số kỹ thuật của
chức năng, chủ yếu bạn cũng có thể đã nghe nói chữ ký thuật ngữ, chữ ký chức
năng đó là những gì nó được.
Nó chỉ định dữ liệu được trả về, dữ liệu mà
nó lấy và mọi thứ về chính hàm.
Bạn muốn viết một nguyên mẫu hàm giống như cách bạn viết tiêu đề hàm, sự
khác biệt duy nhất là bạn đặt một dấu chấm phẩy ở cuối.
Và đây chỉ là khai báo hàm.
Điều này nói rằng chức năng tồn tại.
Một nguyên mẫu chức năng cho phép trình biên dịch để tạo ra
các hướng dẫn thích hợp tại mỗi chỉ nơi bạn gọi hàm.
Nó cũng kiểm tra xem bạn đang sử dụng hoạt động chính xác trong mỗi lời gọi.
Lý do mà bạn cung cấp chức năng tiêu đề để bạn có thể gọi hàm mà không cần cảnh
báo hoặc khai báo hàm mà không có nó được triển khai, vì vậy nó thực sự chỉ thứ tự mã của bạn
và tôi sẽ cung cấp cho bạn một ví dụ về
điều này trong giây lát.
Khi bạn bao gồm một tiêu đề chuẩn tệp trong một chương
trình, tệp tiêu đề thêm nguyên mẫu hàm.
Các nguyên mẫu hàm thường đi vào các tệp tiêu đề nếu bạn muốn sử dụng lại chúng trong
nhiều tệp nguồn khác nhau.
Nếu bạn chỉ sử dụng chúng trong một tệp nguồn, bạn chỉ có thể đặt
chúng ở trên cùng trong tệp nguồn.
Nhưng vì chúng tôi đang sử dụng printf chức năng có thể được sử dụng
trong nhiều tệp nguồn khác nhau, tiêu đề đó hàm sẽ được định nghĩa trong tiêu đề
hoặc khai báo hàm đó sẽ được xác định trong tiêu đề.
Và trong trường hợp này, stdio. h.
Vì vậy, chúng thường xuất hiện trong các tệp nguồn nếu chỉ có tệp nguồn đó đang
sử dụng chức năng đó.
Nếu không, bạn đặt chúng vào một tệp tiêu đề nếu chúng
đang được sử dụng lại bởi nhiều tệp nguồn.
Nó cho phép bất kỳ chức năng nào trong tệp để gọi bất kỳ hàm nào
trong số đó được xác định bất kể vị trí bạn đã thực hiện.
Nếu bạn đặt việc triển khai của một hàm, sau khi bạn gọi nó, c sẽ
phàn nàn và nói rằng nó không biết về nó.
Bởi vì khi bạn biên dịch, bạn đang biên dịch từng dòng một.
Nếu bạn đặt tờ khai tại trên cùng, sau đó bạn có thể gọi hàm
trước khi nó được định nghĩa, trước khi nó được triển khai.
Tên tham số không nhất thiết phải là cùng được sử dụng trong định nghĩa hàm.
Bạn có thể có nhiều tên khác nhau.
Khi tôi nói tên, đó là định danh của dữ liệu.
Bạn có thể thay đổi tên của tham số trong nguyên mẫu hàm.
Bạn vẫn phải có cùng một dữ liệu nhưng bạn có thể thay đổi tên.
Luôn luôn thực hành tốt để bao gồm các khai
báo hàm cho tất cả các hàm trong chương trình ở đầu tệp.
Nó giữ cho chương trình của bạn nhất quán hơn thiết kế và nó ngăn ngừa bất
kỳ lỗi nào xảy ra ở bất kỳ giai đoạn nào nếu bạn muốn gọi hàm
đó trước khi thực hiện nó.
Đây là một ví dụ về một số nguyên mẫu chức năng.
Ở trên cùng của tệp, chúng tôi có bao gồm của chúng tôi.
Và sau đó chúng tôi có một số các hàm mà chúng ta đã khai báo,
tính trung bình, tính tổng và lấy dữ liệu.
Bạn nhận thấy nó trông chỉ giống như một tiêu đề hàm.
Nó có kiểu trả về, có các tham số được xác
định trong hàm, nhưng nó có một dấu chấm phẩy ở cuối.
Không có triển khai cho các chức năng này.
Bạn chỉ nói với trình biên dịch đây là hàm tồn tại và đây
là cách nó được định nghĩa.
Điều này cho phép bạn làm bây giờ là trong chức năng chính của bạn, bạn có
thể gọi mức trung bình, bạn có thể gọi tổng, bạn có thể gọi để lấy dữ liệu.
Và việc triển khai thực tế có thể ở bên dưới nơi bạn đang gọi cho họ.
Nếu bạn không có chức năng ở đây, khi bạn cố
gắng gọi chúng trong phần chính, nếu chúng được định nghĩa bên dưới quy trình chính, bạn sẽ
có lỗi hoặc cảnh báo.
Vì vậy, chúng ta hãy xem tại đó trong các khối mã.
Ở đây chúng tôi có thói quen chính thông thường của chúng tôi.
Bây giờ hãy nói rằng chúng tôi muốn để tạo một hàm hoặc chúng ta muốn gọi
một hàm.
Chúng tôi sẽ gọi một hàm được gọi là add và nó sẽ không nhận
bất kỳ tham số nào.
Chúng tôi đang gọi nó trong chức năng chính trên dòng 7.
Sắp tới thực hiện nó trên dòng 10.
Chúng ta sẽ nói void add and chúng tôi thậm chí sẽ không làm bất cứ điều gì.
Chúng tôi sẽ giữ nó trống rỗng.
Khi chúng tôi biên dịch cái này, cái gì bạn sẽ nhận thấy là trình biên dịch này chỉ
đưa ra một cảnh báo.
Nó nói rằng add có một tuyên bố ngầm.
Bạn có thể loại bỏ cảnh báo đó bằng cách sử dụng một khai báo hàm.
Bạn có thể khai báo hàm về cơ bản nói với trình biên dịch rằng bạn sẽ sử
dụng nó ở đâu đó, nhưng bạn không
biết nơi thực hiện.
Vì vậy, những gì bạn có thể làm là bạn có thể nói void thêm ngay vào đây
và chỉ cần thêm dấu chấm phẩy.
Bây giờ nó sẽ loại bỏ điều đó cảnh báo và một số biên dịch thực sự sẽ cung
cấp cho bạn một lỗi.
Bây giờ khi tôi biên dịch nó, tôi có không có cảnh báo và không có lỗi.
Vì vậy, đó là những gì một chức năng khai báo không.
Nó cho phép bạn đặt chức năng ở bất cứ đâu.
Bây giờ nếu bạn không có chức năng khai báo ở trên cùng và bạn đã
thực hiện ở trên nơi bạn đã gọi nó, thì bạn cũng sẽ không thấy lỗi
vì trình biên dịch sẽ biết về chức năng trước khi nó
thực sự cố gắng gọi nó.
Vì vậy, nếu chúng tôi xây dựng điều này, bạn cũng sẽ thấy rằng không có lỗi.
Bây giờ tôi đã đề cập rằng bạn thường muốn khai báo tất cả các
chức năng của bạn ở trên cùng chỉ để thực hành tốt và tôi nghĩ bạn cần phải làm điều đó.
Vì vậy, hãy tiếp tục làm điều đó.
Nhưng nếu bạn thoát ra khỏi điều đó theo thói quen, bạn phải khai báo
các hàm của mình trước khi gọi chúng hoặc bạn phải cung cấp
các nguyên mẫu chức năng vì bạn không muốn cảnh báo hoặc lỗi trong chương trình của bạn.
Đây là cách bạn có thể xác định một và đây là cách bạn có thể
sử dụng các nguyên mẫu hàm.
Trong bài giảng tiếp theo, chúng ta
sẽ nói về các tham số.
Làm thế nào bạn có thể truyền dữ liệu cho một hàm.
Cảm ơn bạn.