Tôi có một vĩ mô mà đi số dòng và tên tập tin vào một trình xử lý lỗi:Hành vi của __LINE__ trong các chức năng inline
#define SYSTEM_FAILURE (error_code, comment) \
System_Failure((error_code), (comment), __LINE__, __FILE__);
như thế nào __LINE__
sẽ được giải quyết khi sử dụng bên trong một chức năng inlined?
file.h:
inline int divide(int x, int y)
{
if (y == 0)
{
SYSTEM_FAILURE(ENUM_DIVIDE_BY_ZERO, "divide by zero error");
}
return x/y;
}
__LINE__
sẽ chứa số dòng trong tập tin tiêu đề, hoặc số dòng của tập tin nguồn nơi hàm inline được gọi là (giả biên dịch nào một "dán" trong mã nguồn)?
Không thể dùng thử vì hành vi có thể khác nhau trên trình biên dịch và có thể không phải là trạng thái chuẩn. –
Downvoters: Tại sao downvote? Câu hỏi đặt ra là sử dụng các hàm C, inline và macro trong một hệ thống nhúng. –
@Thomas, kiểm tra điều này trên trình biên dịch của riêng bạn và bao gồm các kết quả trong câu hỏi của bạn (do đó làm cho nó giống như 'tiền xử lý của tôi thực hiện điều này, nó là tiêu chuẩn?') Sẽ có (và vẫn có thể) nhiều hơn các downvotes. –