Tôi không biết cách thực hiện điều này!
cách lấy con trỏ hàm trong đối số va_list?
cảm ơn rất nhiều.Làm thế nào để chuyển một con trỏ hàm tới một hàm với các đối số biến?
5
A
Trả lời
4
Sử dụng typedef cho loại con trỏ hàm.
3
Kiểu chữ thường làm việc với các con trỏ hàm dễ dàng hơn, nhưng không cần thiết.
#include <stdarg.h>
void foo(int count, ...) {
va_list ap;
int i;
va_start(ap, count);
for (i = 0; i < count; i++) {
void (*bar)() = va_arg(ap, void (*)());
(*bar)();
}
va_end(ap);
}
Các vấn đề liên quan
- 1. Chuyển các đối số hàm tới một hàm bên trong?
- 2. Gán con trỏ cho một hàm địa chỉ của con trỏ tới đối tượng hàm
- 3. Chuyển hàm con trỏ thành thành viên làm con trỏ tới hàm
- 4. Làm thế nào để "bỏ" một hàm hai đối số thành một hàm đối số?
- 5. Hàm con trỏ tới hàm __attribute __ ((const))?
- 6. C++: Hàm con trỏ hàm với số biến số đối số
- 7. Chuyển một con trỏ tới hàm putchar đến một hàm nhận int (*) (int)
- 8. Hàm con trỏ tới hàm thành viên
- 9. chuyển functor làm con trỏ hàm
- 10. Cú pháp cho một con trỏ tới một hàm trả về một con trỏ hàm trong C
- 11. không thể chuyển con trỏ tới hàm giữa các lớp
- 12. Bắt đếm đối số của một con trỏ hàm
- 13. Đối số chấp nhận con trỏ hàm
- 14. Chuyển một con trỏ tới hàm thành viên của lớp như một tham số
- 15. Làm thế nào để đếm số đối số được chuyển đến một hàm chấp nhận một số biến đối số?
- 16. Python, làm cách nào để chuyển đối số sang tham số con trỏ hàm?
- 17. Gọi một hàm có con trỏ không const sẽ chuyển thành hàm mẫu trên một hàm lấy con trỏ tới const
- 18. Con trỏ hàm C++ làm tham số
- 19. Đối số mảng có được chuyển đến một hàm không phải là một con trỏ không?
- 20. Làm cách nào để sắp xếp một con trỏ tới một con trỏ tới một int?
- 21. C, con trỏ hàm với đối số được đặt trước
- 22. Làm cách nào để chuyển một mảng tới hàm bash
- 23. Trong Perl, làm cách nào để chuyển một hàm làm đối số của một hàm khác?
- 24. C++ Con trỏ tới các hàm thành viên Thừa kế
- 25. Trong C, có bao giờ an toàn khi đúc con trỏ hàm variadic đến một con trỏ hàm với các đối số hữu hạn không?
- 26. Chuỗi an toàn C11 đối với các hàm trả về con trỏ tới bộ đệm tĩnh
- 27. C++: Làm thế nào để chuyển tham chiếu đến hàm thành một hàm khác?
- 28. con trỏ hàm chức năng khác nhau với các đối số khác nhau trong C
- 29. Làm thế nào để truyền mảng tới hàm sử dụng hàm func_get_args để lấy tham số
- 30. Làm thế nào để chuyển một hàm vào một hàm? hàm functors/function avaiable trong VB2010 là gì?
Nói chung, để tạo ra một loại tên (để sử dụng với 'va_arg',' sizeof', một thợ đúc chư hoặc tương tự), hãy viết một tuyên bố của một biến với kiểu đó, sau đó loại bỏ các tên biến. – caf
Trên thực tế, đây là (trớ trêu thay) họ chỉ có thời gian mà typedefs được yêu cầu. Nói về tham số * type * cho va_arg trong phần 7.15.1.1 của tiêu chuẩn C: "Kiểu tham số phải là tên kiểu được chỉ định sao cho kiểu con trỏ tới đối tượng có kiểu được chỉ định có thể thu được đơn giản bằng cách postfixing a * để nhập. " Điều này có nghĩa là nhiều loại không tầm thường không được đảm bảo hoạt động, kể cả ví dụ của bạn, không có typedef. –
Không biên dịch trên bộ công cụ của tôi. – KeatsPeeks