[Powered by Google Translate] CHRIS GERBER: Một chức năng là một loạt các bước trong một
chương trình lớn hơn, mà thường được dự định được gọi
nhiều lần và từ nhiều nơi khác trong
chương trình.
Khi tạo ra một chức năng C, một trong những yêu cầu là
chỉ định một loại giá trị trả về.
Các trường hợp đơn giản nhất là một tình huống mà gọi
mã không có liên quan với kết quả của hàm.
Đây có thể là trường hợp khi chúng tôi đang in dữ liệu vào
người sử dụng màn hình hiển thị, như với printf.
Trong trường hợp này, chúng ta có thể khai báo một giá trị trả về
có kiểu void.
Sử dụng khoảng trống chỉ đơn giản là cho trình biên dịch rằng không có
giá trị sẽ được trả lại.
Hãy xem này trông giống như.
>> Hãy nói rằng chúng ta có một chức năng gọi là say_hello rằng
mất một đối số.
Chúng tôi sẽ vượt qua nó tên của một người và nó sẽ hiển thị một lời chào
trên màn hình.
Tên sẽ được char *.
Và chúng tôi sẽ xác định đó là đối số.
Ứng dụng của tôi không cần phải biết những gì đã được in hoặc nếu nó
đã được in.
Vì vậy, giá trị trả về sẽ có kiểu void.
Chức năng này có thể in ra màn hình với một lệnh như
printf ("Xin chào,% s \ n
", Tên);
Lời chào sẽ được hiển thị và điều khiển sẽ được thông qua
sao để mã gọi.
Một điều cần lưu ý là khi các loại giá trị trả lại là void,
bạn không cần phải bao gồm sự trở lại
tuyên bố trong chức năng.
Nếu bạn chọn để bao gồm một, không bao gồm giá trị trả về
như là một đối số.
>> Trong một số trường hợp, nó làm cho tinh thần để trả về một
giá trị từ một hàm.
Hãy nói rằng chúng tôi đã viết một chức năng được gọi là add_floats.
Chúng tôi sẽ vượt qua hai đối số, cả hai nổi,
được gọi là đầu tiên và thứ hai.
Và nó sẽ cho chúng tôi biết số tiền của những người nổi.
Chúng tôi biết rằng nếu chúng ta thêm hai phao lại với nhau, kết quả
sẽ là một float.
Cho rằng, chúng tôi chọn một kiểu trả về của phao.
Chức năng này sẽ thực hiện tính toán này và trở về
các giá trị trong một tuyên bố như trở lại
+ đầu tiên thứ hai;
Khi kiểm soát được thông qua trở lại mã gọi,
kết quả giá trị bây giờ đã có mã đó.
Chúng ta có thể lưu trữ giá trị như vậy: kết quả float =
add_floats (3,14, 1,62
);
Kết quả trong trường hợp này sẽ chứa giá trị 4,76.
>> Xin nhắc lại, các giá trị dấu chấm động là không chính xác.
Vì vậy, nếu đây là một tính toán tài chính, sử dụng tiền và
cent, chúng tôi có thể muốn xem xét một kiểu dữ liệu chính xác như
int và thực hiện các tính toán trong đồng xu.
>> Một trường hợp khác mà chúng ta muốn trả về một giá trị từ một
chức năng là khi chúng tôi muốn biết nếu một chức năng
thành công.
Nếu nó đã không thành công, chúng tôi cũng có thể muốn biết những gì loại
lỗi xảy ra.
Hãy nói rằng chúng tôi đang cố gắng để mở một tập tin trên đĩa để đếm
số ký tự trong nó.
Nếu tập tin không thể mở được, chúng tôi muốn để có thể dừng lại và
nói cho người dùng về vấn đề này.
>> Chúng tôi sẽ gọi count_file_chars chức năng của chúng tôi và nó sẽ
mất một đối số.
Chúng tôi sẽ vượt qua trong tên của tập tin bằng cách sử dụng một
char * gọi là tên tập tin.
Chức năng này có thể trông giống như thế này.
Trong ví dụ này, chúng tôi mong chờ các tính trở lại
0 hoặc nhiều.
Điều này để lại cho chúng ta các số nguyên âm
sử dụng như là giá trị trọng điểm.
Một giá trị trọng điểm chỉ đơn giản là một giá trị đặc biệt mà không phải là
dữ liệu hợp lệ nhưng không chuyển tải thông tin.
Ở đây, nếu tôi trở lại một -1 mã gọi, tôi
thực sự gửi một thông điệp rằng một lỗi xảy ra trong khi
cố gắng để truy cập các tập tin.
Sau đó tôi có thể kiểm tra xem giá trị trả về để xác định nếu của tôi
chức năng gọi là thành công.
Nếu con số này là 0 hoặc cao hơn, tôi sẽ biết
số ký tự trong tập tin.
Tuy nhiên, nếu con số này là nhỏ hơn 0, tôi có thể chỉ đơn giản là
in rằng một vấn đề đã xảy ra.
Thương mại-off để xem xét là bằng cách đặt tất cả các
các giá trị tiêu cực như là giá trị trọng điểm, giả định này là một
Số nguyên 32-bit, tôi đã cơ bản lấy đi xung quanh
2 tỷ có thể trở về giá trị.
>> Quay lại các loại giá trị là một trong những yếu tố quan trọng nhất của
chức năng cuộc gọi.
Hy vọng rằng điều này tóm tắt ngắn gọn đã giúp bạn suy nghĩ về
ba loại: void, giá trị kết quả, và các giá trị trọng điểm,
và khi mỗi một trong ba có thể là
thích hợp trong mã của bạn.
Cảm ơn bạn đã cho xem.