C là một ngơn ngữ lập trình có cấu trúc, tuy vậy nó vẫn chứa một số câu lệnh làm phá vớ cấu trúc của chương trình:
Bài 9 Hàm Mục tiêu:
9.2.3 Kiểu của một hàm
type-specifier được sử dụng để xác định kiểu dữ liệu trả về của một hàm. Trong ví dụ trên, type- specifier khơng được viết bên cạnh hàm squarer(), vì squarer() trả về một giá trị kiểu int. type-
specifier là không bắt buộc nếu một giá trị kiểu số nguyên được trả về hoặc nếu khơng có giá trị nào được trả về. . Tuy nhiên, tốt hơn nên chỉ ra kiểu dữ liệu trả về là int nếu một giá trị số nguyên được trả về và tương tự dùng int nếu hàm khơng trả về giá trị nào.
9.3 Gọi hàm
Có thể gọi một hàm từ chương trình chính bằng cách sử dụng tên của hàm, theo sau là cặp dấu ngoặc (). Cặp dấu ngoặc là cần thiết để nói với trình biên dịch là đây là một lời gọi hàm. Khi một tên hàm được sử dụng trong chương trình gọi, tên hàm có thể là một phần của một một lệnh hoặc chính nó là một câu lệnh. Mà ta đã biết một câu lệnh luôn kết thúc với một dấu chấm phẩy (;). Tuy nhiên, khi định nghĩa hàm, không được dùng dấu chấm phầy ở cuối phần định nghĩa. Sự vắng mặt của dấu chấm phẩy nói với trình biên dịch đây là phần định nghĩa của hàm và không được gọi hàm.
Một số điểm cần nhớ:
Một dấu chấm phẩy được dùng ở cuối câu lệnh khi một hàm được gọi, nhưng nó khơng được dùng sau một sự định nghĩa hàm.
Cặp dấu ngoặc () là bắt buộc theo sau tên hàm, cho dù hàm có đối số hay khơng.
Hàm gọi đến một hàm khác được gọi là hàm gọi hay thủ tục gọi. Và hàm được gọi đến còn được gọi là hàm được gọi hay thủ tục được gọi.
Các hàm không trả về một giá trị số nguyên cần phải xác định kiểu của giá trị được trả về. Chỉ một giá trị có thể được trả về bởi một hàm.
Một chương trình có thể có một hoặc nhiều hàm.