LINUX.ORG.RU

Что означает точка перед элементом структуры в C++?

 , ,


1

3

Здравствуйте! Я прочитал про структуры, но поиск «c++ structures dot before member name» ничего не показал.

Подскажите, что определяет элемент структуры .common?

Также, зачем нужно равно HAL_MODULE_INFO_SYM =

И почему все элементы начинаются с точки: .tag, .id, .name?

struct audio_module HAL_MODULE_INFO_SYM = {
    .common = {
        .tag = HARDWARE_MODULE_TAG,
        .module_api_version = AUDIO_MODULE_API_VERSION_0_1,
        .hal_api_version = HARDWARE_HAL_API_VERSION,
        .id = AUDIO_HARDWARE_MODULE_ID,
        .name = "NVIDIA Tegra Audio HAL",
        .author = "The Android Open Source Project",
        .methods = &hal_module_methods,
    },
};

https://source.android.com/devices/architecture/hal

поле .common - структура; инициализация этого поля осуществляется внутри инициализации объекта HAL_MODULE_INFO_SYM

синтаксис = { ... } служит для инициализации объединений и структур

то, что с точкой, называется designator: указатель на имя члена для его инициализации

и да, это C (99), но в C++ так тоже можно

Важно к прочтению http://en.cppreference.com/w/c/language/struct_initialization

Rot1 ()
Последнее исправление: Rot1 (всего исправлений: 1)