Ir ao conteúdo
  • Cadastre-se

Ajuda


kazami
Ir à solução Resolvido por vangodp,

Posts recomendados

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

  • Solução

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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...