Примеры особенностей
__attribute__((packed))
__attribute__((__nonnull__(1,2)))
__pure
__attribute__((packed))
__ESCAPE__
restrict
Не нравится компилятору inline в хедер файле, когда этот хедр включён в *.c файл, в *.cpp ошибок не выдаёт
Код
static inline unsigned int CMP___(unsigned int a, unsigned int b)
{
return (unsigned int)(a < b);
}
{
return (unsigned int)(a < b);
}
В объявление функции аргумент указатель на структуру. Компилятор выдаёт ошибку
1>d:\MyProj\util.h(582) : error C2373: 'cmp_func' : redefinition; different type modifiers…
Есть объявления
Код
typedef union {
uint64_t u64;
uint32_t u32[2];
uint16_t u16[4];
uint8_t u8 [8];
double f64;
float f32[2];
} av_alias av_alias64;
typedef union {
uint32_t u32;
uint16_t u16[2];
uint8_t u8 [4];
float f32;
} av_alias av_alias32;
typedef union {
uint16_t u16;
uint8_t u8 [2];
} av_alias av_alias16;
uint64_t u64;
uint32_t u32[2];
uint16_t u16[4];
uint8_t u8 [8];
double f64;
float f32[2];
} av_alias av_alias64;
typedef union {
uint32_t u32;
uint16_t u16[2];
uint8_t u8 [4];
float f32;
} av_alias av_alias32;
typedef union {
uint16_t u16;
uint8_t u8 [2];
} av_alias av_alias16;
Компилятору не нравится повторение av_alias. av_alias используется в записи
Код
union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
И ещё там много всякой мелочи.
О каких-то записях догадки есть, но это догадки, а хочется быть уверенным в правильности перевода. Что-то есть в гугле.