Вот набор разрешение экрана, который я хочу, чтобы проверить в паре, когда вводимые пользователем вКак проверить действительное разрешение экрана (в C/C++)
Aspect ratio - 4:3
800 x 600
1024 x 768
1152 x 864
1280 x 960
etc..
В настоящее время здесь то, что я имею в виду:.
int arrWidth[] = {800, 1024, 1152, 1280};
int arrHeight[] = {600, 768, 864, 960};
for (int i = 0; i < sizeof(arrWidth)/sizeof(arrWidth[0]); ++i) {
if (pInputWidth == arrWidth[i]) {
if (pInputHeight == arrHeight[i]) {
// both width and height is good
return true;
}
// width good, but height doesn't match
return false;
}
}
// width doesn't match at all
return false;
Есть ли лучший способ сделать это?
Конечно, есть лучший способ: показанный код полностью сломан, и единственная причина, по которой он работает для вас, состоит в том, что ваш 'sizeof (int *)' равен 4. Будьте готовы к тому, что ваш код умрет огненной смертью, когда он скомпилирован для 64-битной платформы. Подсказка: 'sizeof (arrWidth)' не делает того, что вы думаете. –
yep, мой плохой, отредактированный. –
Выглядит лучше, но лучшим местом для этого вопроса будет http://codereview.stackexchange.com/ –