Битовая арифметика в параметрах функции. Как это работает? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Разбираюсь с библиотекой SDL http://ru.wikipedia.org/wiki/Simple_DirectMedia_Layer Там есть такая функция
int SDL_Init(Uint32 flags);
А в примере нашёл такое:
#include <stdlib.h>
#include "SDL.h"
 
main(int argc, char *argv[])
{
    if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) {
        fprintf(stderr, "Не могу инициализировать SDL: %s\n", SDL_GetError());
        exit(1);
    }
    atexit(SDL_Quit);
    ...
}
В исходниках копался,но там вроде нет ничего явного по этому поводу в коде самой функции.Ясно только,что эти флаги выглядят так:
#define SDL_INIT_AUDIO      0x00000010
#define SDL_INIT_VIDEO      0x00000020
Кто нибудь может немного прокомментировать,как вообще это работает,мне нужно сделать "обёртку" для данной функции,для этого нужно знать,как работать с флагами у себя.
В-общем вопрос в том,является ли битовая арифметика в этом случае методом посылки нескольких флагов одновременно? Я так понял,это распространённое явление?

Решение задачи: «Битовая арифметика в параметрах функции. Как это работает?»

textual
Листинг программы
0x00000010

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы