Битовая арифметика в параметрах функции. Как это работает? - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д