What is incorrect about function prototype?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "int printSum(int a, b);". Trong nguyên mẫu hàm, mỗi tham số phải tự mang kiểu của mình; không có chuyện viết một kiểu rồi dùng chung cho các tên phía sau như khi khai báo biến. Ở dòng này b không có kiểu, trình dịch cũng không được suy ra int ngầm trong nguyên mẫu, nên nó báo lỗi; muốn đúng phải viết int printSum(int a, int b). Dòng "void printSum(int* a, int b); " hợp lệ: hàm không trả về gì, nhận một con trỏ int và một int. Dòng "int printSum(int* a, int b);" cũng hợp lệ và là cách thường dùng khi muốn hàm sửa được biến gốc qua con trỏ rồi vẫn trả về mã kết quả. Dòng "int* printSum(int* a, int b);" hợp lệ nữa, chỉ khác ở chỗ hàm trả về một con trỏ int; dấu sao gắn vào kiểu trả về là cú pháp bình thường.

Cùng phần 4

Xuất hiện trong 1 bộ đề