Computer >> Máy Tính >  >> Lập trình >> lập trình C

Câu đố gọi hàm trong C / C ++?

Câu đố về cuộc gọi hàm C / C ++ này là một câu đố nhằm khám phá thêm về hoạt động của việc gọi phương thức trong cả hai ngôn ngữ lập trình C và C ++ /.

Đầu ra của một phương thức trong C và C ++ là khác nhau. Hãy xem sự khác biệt trong cách gọi các phương thức trong C và C ++.

Hãy lấy một ví dụ và kiểm tra đầu ra của mã dưới đây bằng c và c ++.

Ví dụ

void method() {
   // Print statement
}
int main() {
   method();
   method(2);
}

Đầu ra

Đối với C ++ -

Error : too many arguments to function ‘void method()’

Đối với C -

Program runs without any error.

Logic đằng sau đầu ra và lỗi

Các trình biên dịch cho ngôn ngữ lập trình C ++ coi phương thức hàm () là một hàm không có bất kỳ tham số nào trong khi cùng một hàm trong trình biên dịch C hoạt động khá hiệu quả vì trình biên dịch coi phương thức hàm () là một hàm có thể chấp nhận đối số biến.

Do i C ++ này khi chúng ta truyền các đối số cho một phương thức không có tham số trong định nghĩa của nó, sẽ có một dấu nhắc lỗi trong cửa sổ đầu ra nói rằng ‘error:quá nhiều đối số cho hàm‘ void func () ’.

Và trong C, các đối số đã truyền được chấp nhận và mã bên trong hàm được thực thi.