Ir ao conteúdo
  • Cadastre-se
kazami

RESOLVIDO Ajuda

Recommended Posts

Meu compilador fica exibindo a seguinte mensagem: [Warning] missing whitespace after the macro name [enabled by default]

 

Sei que o problema está no #define que criei mas não sei como resolver.

 

#include "meuh.h"

#define limpatela;  system("cls");
 
 int p1,p2,p3,p4;
 int opcao;
 int main()
 
Agradeço quem poder me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

prove :#define limpatela  system("cls")

 

Quando você define uma "macro", é como si você tivesse copiando e colando esse texto "system("cls");" no lugar que você escreveu "limpatela;". porém note que você colocou um ponto e vírgula depois do limpatela, o compilador acha que você quer por de nome ao ponto e vírgula de limpatela, e ainda para isso faltaria um espaço entre limpatela e o ponto e vírgula(';').

 

Em outras palavras o programa acha que você quer fazer limpatela = ';' mas não deixou espaço entre limpatela e ';', por isso o erro. Ele esta dizendo que não encontra um espaço entre o nome da macro que é "limpatela" e o que é a ação da macro que é "system("cls")".

 

Tire o ponto e vírgula de limpatela porque, o ponto e vírgula nós colocamos ele na hora de criar a sentença. Em macros você não tem que por ponto e vírgula na hora de criar a macro. Valeu? Que acontece si você criar uma macro com ponto e vírgula e depois na hora de chamar "limpatela", você por outro ponto e vírgula já que é o natural? Por isso nao devemos por ';' em macros.

 

Troque "#define limpatela;  system("cls");" por "#define limpatela  system("cls")" e somente ponha ponto e vírgula depois de chamar "limpatela" cada vez que você quiser limpar a tela dentro da sua função main, ou outra qualquer. Ou prove fazer o que ja te recomendou o usuário @dyegolierrt, que é fazer uma função chamada limpar() por exemplo, e ponha o system dentro.

 

O ponto e vírgula usamos para dizer que terminamos uma sentença, e somente devemos colocar na hora de criar sentenças ok.

 

Então lembre:

 

-Não colocamos ponto e vírgula em macros.

É errado fazer:

#define foo; bar;

 

O correto é fazer:

#define foo bar

 

-Coloque o ponto e vírgula somente dentro das funções na hora de "limpar a tela".

 

Sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×