• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Zed_Blade

C\C++ Validator

4 mensagens neste tópico

Bom dia pessoal! :confused:

Estava aqui a bater código e lembrei-me de repente "Epá um validator de código como em php e html para C é que era..."

De formas, que como estou a fazer um trabalho relativamente complicado, que involve alocação de memória, definição de estruturas e acesso a dados do sistema gostava de ir validando o código de tempos a tempos..

Alguém conhece alguma coisa? De preferência para OSx ou Linux mas se tiver que ser para outra plataforma, que seja..

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A validação sintáctica de código em C é a fase de lexing/parsing da compilação. Se tiveres erros ele não compila. Ao contrário de HTML onde código não válido pode executar.

Quanto a problemas de memória e verificação de leaks, aconselho-te o valgrind.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que procuras é um lint.

Eu uso o splint.

Por exemplo vê este código e o resultado do splint

#include <stdio.h>

int main(void) {
  char buf[100];
  fgets(buf, 120, stdin);
  printf(buf);
  return 0;
}

Splint 3.1.1 --- 21 Apr 2006

test.c: (in function main)
test.c:5:3: Return value (type char *) ignored: fgets(buf, 120, ...
  Result returned by function call is not used. If this is intended, can cast
  result to (void) to eliminate message. (Use -retvalother to inhibit warning)
test.c:6:3: Format string parameter to printf is not a compile-time constant:
               buf
  Format parameter is not known at compile-time.  This can lead to security
  vulnerabilities because the arguments cannot be type checked. (Use
  -formatconst to inhibit warning)

Finished checking --- 2 code warnings

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora