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