Я видел кучу функций в коде Linux под именем __foo. Что означает двойное подчеркивание и когда оно должно использоваться?Каковы соглашения для функций __func?
1
A
ответ
5
Это означает, что это зарезервированный идентификатор. Об этом говорили оба стандарта C++ 03 и C99.
C99:
7.1.3 Зарезервированные идентификаторы
- Все идентификаторы, начинающиеся с символа подчеркивания и либо заглавной буквы или другой подчеркивания всегда зарезервированы для любого использования.
- Все идентификаторы, начинающиеся с символа подчеркивания, всегда зарезервированы для использования в качестве идентификаторов с областью файлов как в обычном, так и в пространстве имен тегов.
C++ 03:
Каждое имя, которое содержит двойное подчеркивание (_ _) или начинается с символа подчеркивания с последующим прописной буквы (2.11) зарезервирована для осуществления для любого использования.
Вы также можете обратиться к:
Смежные вопросы
- 1. Каковы соглашения для порядка параметров в Python?
- 2. Каковы же соглашения ODataConventionModelBuilder?
- 3. Каковы соглашения об именах для вложенных маршрутов?
- 4. Соглашения о присвоении имен для числовых функций?
- 5. Соглашения об именах для функций публичного контроллера?
- 6. Принудительные соглашения об именах функций
- 7. Соглашения о форматировании функций/классов
- 8. Каковы хорошие соглашения Haskell для управления глубоко вложенными шаблонами скобок?
- 9. Каковы контрольные квалификаторы для функций?
- 10. Косвенность от FUNC() в __func()
- 11. Каковы соглашения об именах в C#?
- 12. Каковы хорошие соглашения об именовании объектов?
- 13. Каковы некоторые соглашения об именах backbone.js?
- 14. Каковы соответствующие соглашения об именах библиотек?
- 15. Предупреждения ReSharper для соглашения об именах JavaScript для конструкторских функций
- 16. Каковы некоторые дополнительные соглашения о каталогах для проектов Maven?
- 17. экземпляры Redis для всех приложений? Каковы некоторые соглашения?
- 18. Каковы соглашения об именах для фреймворков Mac и iOS?
- 19. Каковы предпочтительные соглашения об именах du jour для C++?
- 20. Каковы хорошие соглашения для Google Analytics на Android?
- 21. Каковы ваши соглашения об именах для объектов SQL Server?
- 22. Каковы соглашения об именах для файлов Java .properties?
- 23. Каковы последствия неиспользуемых функций
- 24. Неиспользуемые соглашения об именах функций AngularJS
- 25. Каковы возвращаемые значения для функций обновления mybatis?
- 26. Каковы формулы для функций FVSCHEDULE и ISPMT?
- 27. Каковы общие соглашения об использовании пространств имен в Clojure?
- 28. Каковы наиболее распространенные соглашения об именах в C#?
- 29. Каковы типичные соглашения ASP.NET MVC - Controller Action Name?
- 30. Каковы соглашения в Дарте об инкапсуляции и аннотации типов участников?
Зарезервировано для реализации чего? Как частная функция? Почему бы не использовать функцию private/not-exported-in-header? – EpsilonVector
Реализация библиотеки компилятора и библиотеки компилятора. –
imo это во избежание столкновения идентификаторов. – Hailei