Что означает двойное подчеркивание в имени переменной на языке C? [дубликат]

Возможные Дубликаты:
почему люди используют __(двойное подчеркивание) так много в C++

Я изучал программный код ядра Linux.

есть некоторые структуры данных и функции, которые начинаются с двойного подчеркивания, как:

__u32  len

чем это отличается от обычных переменных?

3 ответов


Это означает, что это зарезервированное системой имя. Стандарт C гласит, что все имена, начинающиеся с двух подчеркиваний или подчеркивания и заглавной буквы, зарезервированы для использования системой или компилятором и не должны определяться в коде приложения.


другие ответы верны, что он зарезервирован для реализации. Конечно, здесь Linux должен выйти 20-го века и использовать стандартный тип uint32_t а не мириады нестандартных имен (__u32, u_int32_t, ...) это изводило унаследованные Юнисы..


Это тип, определенный в здесь (а также несколько других мест).

обычно двойное подчеркивание перед именем типа, переменной или функции подразумевает имя, которое всегда зарезервировано, как определено в разделе 7.1.3 текущего стандарта (C99).