Đối số giả có nghĩa là gì?


8

Điều đó có nghĩa là gì khi một đối số cho hàm được gọi là đối số giả ? Tôi chưa gặp thuật ngữ này ngoài Fortran, nó có phải là một thuật ngữ chung trong khoa học máy tính không? Điều gì sẽ là ví dụ về các đối số được thông qua là giả và không được thông qua như giả?

Tôi tìm thấy định nghĩa này , điều mà tôi không chắc là mình hiểu, nhưng có vẻ như một đối số giả là một biến được truyền bằng tham chiếu, trong trường hợp nào trong Fortran tất cả các biến là biến giả? (bối rối)

Chỉnh sửa: Tôi vừa chạy vào bài tiểu luận sau đây giúp tôi hiểu rõ hơn về lập luận / chức năng gọi của Fortran: temorology: tổng hợp Fortran: Tôi đến đây để tranh luận


Tìm thấy bài đăng này trên trang web intel là hữu ích! software.intel.com/en-us/ từ
user515577

Câu trả lời:


15

"Giả" là "không sử dụng"

Nói chung (không phải ở Fortran), một đối số giả là một đối số sẽ không được sử dụng bởi phần thân của hàm.

Ví dụ, trong hàm sau, zlà một đối số giả nhưng xykhông.

int f(int x, int y, int z) {
  return (x + y);
}

Chúng có thể được sử dụng vì một số lý do:

  • tùy thuộc vào một đối số khác hoặc một số cấu hình, đối số sẽ được sử dụng (không phải giả) và đôi khi nó sẽ không (giả) nhưng cài đặt lập trình áp đặt để vượt qua một đối số. Trong trường hợp đó, bạn thường có thể chuyển bất cứ thứ gì cho hàm, tức là NULLhoặc 0, tùy thuộc vào cài đặt;

  • đối số là không cần thiết nữa, nhưng bạn phải đưa ra một lý do cho các lý do tương thích ngược;

  • hàm không nhận bất kỳ đối số nào (nó có thể được gọi là một thủ tục) nhưng cài đặt áp đặt để đưa ra ít nhất một đối số. Bạn có thể tìm thấy điều này trong các ngôn ngữ lập trình chức năng không rõ ràng nhưng nói chung nó không được gọi là "hình nộm" bởi vì loại ( unittrong ocaml ) gợi ý nó.

"Giả" trong Fortran và Pascal

Trong Fortran và Pascal, và có lẽ trong trường hợp của bạn, có một khái niệm mơ hồ hơn về đối số giả đối tượng thông qua mà tôi đã không hiểu được. Nhưng nó dường như quan tâm đến đặc tả kỹ thuật hơn thủ tục truyền đối số thực tế. (Một số giải thích: liên kết 1 với cả hai ngôn ngữ , liên kết 2 bằng tiếng Pháp ).

Tôi không biết nếu khái niệm này vẫn được sử dụng.

"Giả" là "ràng buộc"

Tôi sẽ không tư vấn thuật ngữ này trong mọi trường hợp, nhưng "biến giả" có thể có nghĩa là "biến bị ràng buộc" nhưng khái niệm này là một vấn đề khoa học máy tính và toán học.


Sự hiểu biết của tôi (lưu ý: Tôi biết ngữ nghĩa tiếng Pháp và ngôn ngữ lập trình nhưng không phải là Fortran) là đối số giả ngu mà, trong tất cả 3 liên kết trong phần Fortran / Pascal của bạn, có nghĩa là một đối số là tên địa phương cho một đối tượng được truyền qua tham chiếu.
Gilles 'SO- ngừng trở nên xấu xa'

15

Trong fortran, một đối số giả là những gì các ngôn ngữ khác gọi là một đối số chính thức . Vì vậy, các đối số giả là danh sách các đối số trong định nghĩa hàm (hoặc chương trình con).

Các đối số thực tế là danh sách các đối số trong danh sách gọi, tại điểm trong mã nguồn nơi một hàm được gọi (nghĩa là được sử dụng).


2
Đây là câu trả lời đúng duy nhất ở đây liên quan đến ý nghĩa của Fortran.
Vladimir F

3

Hàm được xác định rõ là: mối quan hệ giữa một tập hợp các đầu vào và một tập hợp các đầu ra cho phép . Một biến giả sẽ là bất kỳ đầu vào nào không ảnh hưởng đến đầu ra.

Trong "C", hàm thời gian lấy một con trỏ tới một đối tượng time_t làm đầu vào. Vì con trỏ này chỉ được sử dụng để nhận đầu ra, nó có thể được coi là "biến giả".


Sẽ không chính xác hơn nếu gọi nó là một biến đầu ra? Trong thực tế, trong một số cài đặt (ví dụ: trong C #), nó thực sự sẽ được cung cấp từ khóa "out" để gắn nhãn đó là một tham số out.
Joe

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.