Có thể tính toán pow (10, x) tại thời gian biên dịch không?Tôi có thể tính toán pow (10, x) tại thời gian biên dịch trong c?
Tôi có bộ xử lý không có hỗ trợ điểm động và phân chia số nguyên chậm. Tôi đang cố gắng thực hiện càng nhiều phép tính càng tốt vào thời gian biên dịch. Tôi có thể tăng tốc đáng kể một chức năng cụ thể nếu tôi vượt qua cả hai đối số x
và C/pow(10,x)
làm đối số (x và C luôn là số nguyên không đổi, nhưng chúng là các hằng số khác nhau cho mỗi cuộc gọi). Tôi tự hỏi nếu tôi có thể làm cho các chức năng này gọi ít lỗi dễ bị ảnh hưởng bằng cách giới thiệu một macro mà không tự động 1/pow(10,x)
, thay vì buộc các lập trình để tính toán nó?
Có mẹo vặt xử lý trước không? Tôi có thể buộc trình biên dịch tối ưu hóa cuộc gọi thư viện không?
Tôi tin rằng tôi đã nhìn thấy bằng chứng rằng bộ xử lý tiền xử lý hoàn tất (tôi nghĩ rằng nó là một máy băng được thực hiện trong một cuộc thi C bị xáo trộn trong bộ tiền xử lý.) Vì vậy, có một cách. Tuy nhiên, không biết theo cách đó. –
Preprocessor #defines không thể đệ quy, vì chúng chỉ là thay thế văn bản. Vì vậy, giống như Greg, đây là một nơi KHÔNG dành thời gian của bạn tìm kiếm. :) –
@Greg D: Tuy nhiên, bắt đầu với một máy Turing và thực hiện một số mũ của 10 chức năng tấn công tôi như tham vọng. –