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

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

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

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

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

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

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


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

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

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы