2012-04-27 26 views
6

thể trùng lặp:
C function syntax, parameter types declared after parameter listTrong C, có nghĩa là gì khi một biến được khai báo ở giữa một tiêu đề hàm và phần thân?

Một vài lần bây giờ, tôi đã gặp phải mã như thế này:

int 
main(argc, argv) 
int argc; char **argv; 
{ 
    ... 
} 

Tại sao argcargv tuyên bố theo cách này?

+4

Nó có nghĩa là nó được viết khoảng 1987 –

+0

@MichaelBurr: Điều đó thực sự có vẻ là một bản sao. Bỏ phiếu để đóng. –

Trả lời

12

Đây là cú pháp được sử dụng cho danh sách tham số K & R * style.

* K & R - Brian Kernighan và Dennis Ritchie, tác giả của cuốn sách, "The C Programming Language".
Dennis Ritchie cũng là tác giả của ngôn ngữ lập trình C và với Ken Thompson, hệ điều hành UNIX.

+0

Có lợi thế nào khi sử dụng phong cách K & R hiện nay không? Liên kết bạn đã đăng đề xuất kiểu ANSI. –

+2

Ngay cả khi trình biên dịch của bạn vẫn hỗ trợ nó, vui lòng không sử dụng kiểu này cho mã mới. Tôi không thể nhấn mạnh rằng đủ mạnh. Ngoài ra, tôi cập nhật liên kết để trỏ đến Wikipedia, đó là thông tin thêm về phong cách và lịch sử của nó. –

+2

Không có lợi thế. Đây là kiểu C chuẩn cũ, và trong khi nó vẫn được hỗ trợ, nó được coi là lỗi thời. –

Các vấn đề liên quan