JavaScript is required

Which is not a proper prototype?

A.
int funct(char x, char y);
B.
double funct(char x)
C.
void funct();
D.
char x();
Trả lời:

Đáp án đúng: B


Trong C/C++, một prototype (khai báo hàm) cho trình biên dịch biết về kiểu trả về, tên hàm và các tham số (kiểu và số lượng) mà hàm đó nhận. * **A. `int funct(char x, char y);`**: Đây là một prototype hợp lệ. Hàm `funct` nhận hai tham số kiểu `char` và trả về một giá trị kiểu `int`. * **B. `double funct(char x)`**: Đây là một prototype hợp lệ. Hàm `funct` nhận một tham số kiểu `char` và trả về một giá trị kiểu `double`. * **C. `void funct();`**: Đây là một prototype hợp lệ. Hàm `funct` không nhận tham số nào và không trả về giá trị nào (kiểu `void`). * **D. `char x();`**: Đây là một prototype hợp lệ. Hàm `x` không nhận tham số nào và trả về một giá trị kiểu `char`. Tuy nhiên, theo quy ước đặt tên trong C/C++, tên hàm thường bắt đầu bằng một chữ cái viết thường. Ở đây, `x` có thể gây nhầm lẫn vì nó cũng có thể là tên của một biến. Mặc dù hợp lệ về mặt cú pháp, nó không phải là một prototype tốt theo quy ước. Mặc dù đáp án D là hợp lệ về mặt cú pháp, nhưng việc đặt tên hàm trùng với tên biến là một cách làm không tốt. Tuy nhiên, câu hỏi yêu cầu tìm "Which is not a proper prototype?" tức là không hợp lệ về mặt cú pháp. Do đó, không có đáp án nào không phải là prototype hợp lệ.

Câu hỏi liên quan