2009-03-11 36 views
7

Gần đây trong một cuộc phỏng vấn tôi đã được hỏi về chữ ký của printf là gì. Tôi thực sự không thể có được câu trả lời đúng. Có ai đó có thể làm sáng tỏ điều này không?Chữ ký printf là gì?

+2

Nếu bạn đang bối rối trong một cuộc phỏng vấn, đặc biệt là trên một câu hỏi của thực tế, hãy hỏi người phỏng vấn! Nếu bạn lịch sự, và họ không phải là một kẻ ngốc, tôi không thể tưởng tượng họ từ chối bạn. – Ken

Trả lời

23
int printf (const char * format, ...); 

Họ có thể yêu cầu điều này để xem bạn có quen thuộc với cú pháp tham số tùy chọn "..." hay không. Điều này cho phép bạn chuyển một danh sách các biến không xác định sẽ điền vào chuỗi định dạng.

Ví dụ, cùng một phương pháp có thể được sử dụng để in những thứ như thế này:

printf("This is a string: %s", myString); 
printf("This is a string: %s and an int: %d", myString, myInt); 
+0

Hoặc họ có thể tự hỏi liệu người được phỏng vấn có biết printf() trả về một int hay không. –

+1

Thành thật mà nói, tôi không biết nó trả về một int cho đến bây giờ –

+0

Tôi hy vọng họ đã được sau cú pháp variatic. Nếu họ muốn biết về kiểu trả về, câu hỏi là một câu hỏi khủng khiếp. Bạn không muốn làm việc ở đó. –

6

printf là một chức năng variadic với chữ ký sau đây:

int printf(const char *format, ...); 

điều này có nghĩa rằng nó có một yêu cầu tham số chuỗi, tiếp theo là 0 hoặc nhiều thông số (có thể có nhiều loại khác nhau). Cuối cùng, nó trả về một int đại diện cho bao nhiêu ký tự trong kết quả.

Số lượng và loại tham số tùy chọn được xác định bởi nội dung của chuỗi định dạng.

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