Jump to content
Fórum Script Brasil
  • 0

Duvida sobre Atribuição e Condição de Variáveis com Funções.


Question

Olá pessoa eu to fazendo um programa que alerta se o Caps foi ligado ou não...

Meu amigo me deu um código para eu entender como funciona, porém me deparei com esse trecho e estou com duvidas..

CapsAtual = GetKeyState(VK_CAPITAL) & 1; 

if(ultimoCaps != CapsAtual  ){
            ultimoCaps = CapsAtual;
            _sleep(150);
            if(CapsAtual){
                printf("CapsLock  ON! %d \n", CapsAtual );
                
            }else{
                printf("CapsLock  OFF! %d \n", CapsAtual);
                
            }
        }
Minha dúvida é: O que isso siginifica ??
CapsAtual = GetKeyState(VK_CAPITAL) & 1;
CapsAtual = GetKeyState(VK_CAPITAL)
: quer dizer que CapsAtual é o valor que essa função vai retornar do estado do botão que o cara apertou. e esse "& 1" ?? E as vezes eu fico com duvidas.. nesses IFs,
if(CapsAtual){.... }

sem nenhuma condição oque isso quer dizer ? Tem algum livro que explique sobre os dois casos? Abraços.

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Na linha CapsAtual = GetKeyState(VK_CAPITAL) & 1, o operador de bits & (and) é usado para que a atribuição de CapsAtual seja 0 ou 1. Existem outros operadores de bits além de 'and', como 'or' e 'not'.

CapsAtual será verdadeiro (1) se todos os bits do retorno de GetKeyState forem 1 (setados).

Em relação ao IF. Acontece que para c/c++ qualquer retorno condicional diferente de 0 é verdadeiro. Portanto if(CapsAtual) será verdadeiro se CapsAtual for diferente de 0.

Em linguagem C, por exemplo, não existe o tipo bool e as condicionais apenas validam se é 0 ou diferente de 0.

Edited by vega
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148854
    • Total Posts
      644872
×
×
  • Create New...