Trong mục tiêu-c, làm thế nào để đảm bảo rằng nếu bạn có một hàm nhận các tham số biến mà trình định dạng định dạng phù hợp với các tham số thực tế được chuyển đến functoin?Mục tiêu-c Đảm bảo rằng các tham số var-arg là đúng loại và đếm
6
A
Trả lời
20
Điều này được thực hiện thông qua việc sử dụng macro NS_FORMAT_FUNCTION.
Hãy nói rằng bạn có một chức năng như thế này:
LOG(int level,NSString *format,...);
Mức là mức log trong khi định dạng có chứa chuỗi định dạng và các đối số biến là các tham số cho chuỗi định dạng.
Để đảm bảo tại thời gian biên dịch rằng số lượng và loại hình các thông số là đúng một định nghĩa các chức năng như thế này:
LOG(int level,NSString *format,...) NS_FORMAT_FUNCTION(2,3);
Lưu ý rằng 2 và 3 ở đây đề cập đến vị trí trong danh sách đối số của chuỗi định dạng và bắt đầu danh sách tham số biến.
0
C không kiểm tra theo mặc định.
với LLVM số các tham số có thể được kiểm tra (bắt buộc) thông qua vĩ mô NS_FORMAT_FUNCTION
loại của các đối số không thể được kiểm tra. Nó hoạt động cho printf theo một cách nhưng var_args chính nó là của bất kỳ loại
Các vấn đề liên quan
- 1. Đảm bảo rằng Spring Bean được khởi tạo đúng cách
- 2. Đảm bảo rằng các đối tượng thực hiện Comparable
- 3. Có đảm bảo rằng False "là 0" và True "là 1" không?
- 4. Đảm bảo tính đúng đắn trong riak?
- 5. Tôi có đảm bảo rằng sizeof (loại) == sizeof (loại không dấu) không?
- 6. SQL Server - Cách chèn một bản ghi và đảm bảo rằng nó là duy nhất
- 7. Phần còn lại được bảo đảm - không thể POST với các tham số và nội dung
- 8. Có cách nào để đảm bảo rằng các chức năng thành viên là ảo trong D?
- 9. cách đảm bảo rằng JDialog luôn ở trên đầu trang
- 10. Đảm bảo không đảm bảo VirtualMachineError
- 11. Đảm bảo rằng Ngoại lệ luôn bị vô hiệu
- 12. Hợp lệ hóa __construct, đảm bảo vars của của đúng loại
- 13. Làm cách nào để đảm bảo rằng các đối tượng được xử lý đúng cách trong .NET?
- 14. Điều gì (trong các thông số kỹ thuật) đảm bảo rằng 'các nhà khai thác logic ngắn mạch không thực sự không phải là ngắn mạch?
- 15. Trộn danh sách, đảm bảo rằng không có mục nào ở cùng một vị trí
- 16. Truyền Func làm tham số thuộc tính để bảo đảm các tuyến MVC
- 17. Đảm bảo C++ đôi là 64 bit
- 18. TCP có được đảm bảo đến đúng thứ tự không?
- 19. xác thực asp.net để đảm bảo rằng hộp văn bản có giá trị số nguyên
- 20. Writer Monad có đảm bảo kết nối đúng không?
- 21. Làm thế nào để đảm bảo rằng một phím dict python là chữ thường?
- 22. Đảm bảo rằng mã của tôi là an toàn chủ đề
- 23. Thứ tự thực thi các tham số đảm bảo trong Java?
- 24. Tuyên bố LINQ để lặp qua bộ sưu tập và đảm bảo mỗi mục theo đúng thứ tự?
- 25. Đảm bảo chính xác một boolean của danh sách đã cho là đúng?
- 26. Nhóm và đếm các mục
- 27. Các đảm bảo cho vòng loại truy cập scala là gì?
- 28. Đảm bảo JSONP?
- 29. Làm thế nào để đảm bảo rằng tất cả các đối số được cung cấp trong Apache Commons CLI?
- 30. Shell script: Đảm bảo rằng kịch bản không được thực hiện nếu đang chạy
@ downvoters ... Tôi không nhớ xuống bình chọn (ngay cả khi tôi đúng;) nhưng plz ít nhất để lại một bình luận! –