Dyrektywa #line

0

Witam wszystkich.
Zawsze mnie zastanawialo, po co dyrektywa #line. Po co jej uzywac?
Nigdy jakos nie znalazlem dla niej zastosowania.

2

To wewnętrzna dyrektywa wynikająca z procesu przetwarzania kodu w C++. Najpierw przechodzi on przez preprocesor, następnie przez kompilator, dopiero potem przez linker, te trzy oddzielne programy generujące sobie wzajemnie pliki wejściowe. Preprocesor przechodzi przez źródło programu, wkleja treść plików w miejsce dyrektyw #include, dokonuje podstawien makr, usuwa zbędne białe znaki itd. Dyrektywa #line numer_linii "plik.cpp/.h" nie jest dyrektywą preprocesora, jest przez niego generowana aby kompilator wiedział, gdzie pierwotnie znajdowała się dana linia przetworzonego źródła, tylko dzięki kompilator temu jest w stanie prawidłowe komunikaty generować.

Ręczne używanie #line to najlepszy sposób na wygenerowanie mylących błędów, do niczego więcej zwykłemu użytkownikowi się nie przyda.

0

pomyslalem o tym, ale myslalem, ze moze #line ma jeszcze jakas magicznie ukryta funkcjonalnosc.
Dziekuje za pomoc cpp programmer.

0

Ręczne używanie #line to najlepszy sposób na wygenerowanie mylących błędów, do niczego więcej zwykłemu użytkownikowi się nie przyda.

Czasami MOŻE się przydać przy makrach, ale trzeba się zastanowić czy na pewno da pożądany efekt.

0

Azarien, moglbys rozwinac swoja mysl?

1 użytkowników online, w tym zalogowanych: 0, gości: 1