Mam makro, które przechodzi linia numer i nazwę pliku do obsługi błędu:Zachowanie __LINE__ funkcje inline
#define SYSTEM_FAILURE (error_code, comment) \
System_Failure((error_code), (comment), __LINE__, __FILE__);
Jak będzie __LINE__
być rozwiązane przy zastosowaniu wewnątrz inlined funkcji?
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;
}
Will __LINE__
zawierać numer linii w pliku nagłówka lub numer wiersza w pliku źródłowym, w którym funkcja inline nazywa (zakładając, że kompilator robi „wklej” w kodzie źródłowym)?
Nie można tego wypróbować, ponieważ zachowanie może się różnić w przypadku kompilatorów i może nie być zgodne z tym, co stwierdza standard. –
Downwotrzy: Dlaczego upadek? Pytanie wynika z użycia C, wbudowanych funkcji i makr w systemie wbudowanym. –
@Thomas, testowanie tego na własnym kompilatorze i uwzględnianie wyników w twoim pytaniu (w ten sposób czyniąc to bardziej jak "mój preprocesor robi to, czy to jest standard?") Miałoby (i nadal może) nijak wiele z notatek. –