Ir para conteúdo
Fórum Script Brasil
  • 0

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


Rodrigo Mafra

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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.

Editado por vega
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...