Что означает двойное подчеркивание в имени переменной на языке C? [дубликат]
Возможные Дубликаты:
почему люди используют __(двойное подчеркивание) так много в C++
Я изучал программный код ядра Linux.
есть некоторые структуры данных и функции, которые начинаются с двойного подчеркивания, как:
__u32 len
чем это отличается от обычных переменных?
3 ответов
Это означает, что это зарезервированное системой имя. Стандарт C гласит, что все имена, начинающиеся с двух подчеркиваний или подчеркивания и заглавной буквы, зарезервированы для использования системой или компилятором и не должны определяться в коде приложения.
другие ответы верны, что он зарезервирован для реализации. Конечно, здесь Linux должен выйти 20-го века и использовать стандартный тип uint32_t
а не мириады нестандартных имен (__u32
, u_int32_t
, ...) это изводило унаследованные Юнисы..
Это тип, определенный в здесь (а также несколько других мест).
обычно двойное подчеркивание перед именем типа, переменной или функции подразумевает имя, которое всегда зарезервировано, как определено в разделе 7.1.3 текущего стандарта (C99).