2014-11-26 5 views
6

Zgodnie z GCC's own documentation on variable attributes poprawną składnią deklaracji niewykorzystanego atrybutu jest __attribute__((unused)).GCC: "__unused__" vs tylko "nieużywane" w atrybutach zmiennych

Jednak w wielu przykładach i innym kodzie internetowym często widzę zamiast tego __attribute__((__unused__)) i wydaje się, że oba działają.

Czy istnieje powód, dla którego należy podać lub pominąć __ w obu przypadkach? Czy robi to jakąś różnicę i czy istnieje preferowana wersja? Czy są jakieś sytuacje, w których używanie jednej, a nie drugiej, może powodować problemy?

Prawdopodobnie to samo dotyczy również innych parametrów atrybutu?

Odpowiedz

11

Na szczycie the very page you linked, to powie:

Można również określić atrybuty z „__” poprzedzające i następujące każdego słowa kluczowego. Pozwala to na użycie ich w plikach nagłówkowych bez obaw o możliwe makro o tej samej nazwie. Na przykład możesz użyć __aligned__ zamiast aligned.

Identyfikatory zawierające podwójne podkreślenia (__) są zarezerwowane dla implementacji. Dlatego żaden program użytkownika nie może legalnie zdefiniować ich jako makr.

Powiązane problemy