Что они «значат», это довольно глубокий вопрос, и также зависит от среды, в которой вы находитесь.
Это имена типов, но не стандартные типы C ++, поэтому они не известны всем.
Предполагается, что типы Uxx
являются "целыми числами без знака" указанной ширины в битах. Так что U32
будет 32-разрядным целым числом без знака, которое известно как uint32_t
в C99, но еще не стандартизировано в C ++.
SIGSELECT
немного сложнее, но член называется "signo
", что означает, что это номер сигнала. Если код предназначен для POSIX-подобной среды, вполне вероятно, что SIGSELECT
- это просто псевдоним целочисленного типа по умолчанию, int
. См. эту страницу , например.
Какой-то заголовок делает либо
#define SIGSELECT int
или
typedef int SIGSELECT;
чтобы ввести это новое имя (и аналогично для других упомянутых типов).
Чтобы выяснить, являются ли они символами препроцессора или являются действительными typedef
: псевдонимы типа ed, пропустите код через препроцессор и прочитайте его вывод. Если формулировка изменяется (то есть SIGSELECT
превращается в int
или какой-либо другой тип), они являются символами препроцессора, в противном случае они typedef
: s.