Mój kompilator (gcc) daje mi to ostrzeżenie. Proszę mi pomóc zrozumieć, co to znaczy:trigraf?/Ignored, użyj -trigraphs, aby włączyć
ostrzeżenie: trigraph ??/ignorowane, aby umożliwić stosowanie -trigraphs
Mój kompilator (gcc) daje mi to ostrzeżenie. Proszę mi pomóc zrozumieć, co to znaczy:trigraf?/Ignored, użyj -trigraphs, aby włączyć
ostrzeżenie: trigraph ??/ignorowane, aby umożliwić stosowanie -trigraphs
masz „przypadkowo” napisał trigraph gdzieś w kodzie źródłowym (kompilator na ostrzeżenie wskaże linię). Ponieważ trigraphy zostały wymyślone, aby rozwiązać problem, który nie wchodzi w grę w nowoczesnych systemach, nie chcesz, aby trigraph ??/
został zastąpiony znakiem \
.
Dlatego ostrzeżenie to powinno być zignorowane (możesz powiedzieć kompilatorowi, aby zamknął się, dodając w wierszu poleceń -Wno-trigraphs
, patrz docs). Ale dobrze byłoby pokazać kod źródłowy, abyśmy byli pewni.
Zamiast dodawać flagę kompilatora, można uciec przed każdym znakiem zapytania za pomocą \
, tj. \?\?-
. Pomogło to w moim przypadku.
Flaga kompilatora jest przeznaczona dla przypadków gdzie piszesz trigrafię, nie zauważając, że to jedna. Wtedy kompilator nie będzie cię denerwował. Jeśli wiedziałeś w momencie pisania, że jest to niezamierzony trigraf, to możesz uciec, gdy zasugerujesz i zapomnisz flagi kompilatora. –
'?? /' jest odpowiednikiem ukośnika odwrotnego, możesz zamienić triikat na "\" –
Jeśli nie chcesz (na przykład) edytować kodu C na terminalu 3270 komputera mainframe itp., Jest to "dobry pomysł" napisać wystąpienie "??" jako "? \?", ze względu na paranoję. (Niektóre znaki, takie jak {} [] \, są nieobecne w wielu zestawach znaków mainframe, a także niektórych klawiaturach innych niż angielskie dla innych systemów.) – BRFennPocock
Zakurzone kąty C uderzają ponownie ... –