Ir para o conteúdo
Polmax

Compilador

Mensagens Recomendadas

Polmax

Eu vi que recomendam o Devc++ como compilador para C.Eu descarreguei-o mas parece desactualizado , será melhor escolher outro ou mesmo desactualizado ainda o continuam a recomendar :(?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Xpirito

O DevC ++ é um bom compilador. Eu recomendo. Não estará assim tão desactualizado quanto isso na minha opinião. Além de que o podes actualizar.


Para perguntas idiotas, respostas estúpidas!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
lesiano16

O DevC++ não é um compilador. "Dev-C++ is an full-featured Integrated Development Environment (IDE) for Win32. It uses GCC, Mingw or Cygwin as compiler and libraries set."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sandra.moraisg

Olá

Dev-C++ é um Ambiente de Desenvolvimento Integrado (IDE - Integrated Development Environment) para programação na linguagem C/C++. Ele usa a porta Mingw do GCC (GNU Compiler Collection) como seu compilador. O programa cria executáveis nativas no Win32, console ou GUI. Dev-C++ também pode ser usado juntamente com o Cygwin. Dev-C++ é gratuito e de código aberto e é totalmente escrito em Delphi.

Para facilitar o desenvolvimento e compilação de um programa em C, o Dev-C++ oferece

um ambiente que integra um editor de textos eum compilador para linguagem C. O compilador

usado pelo Dev-C++ é o famoso gcc (Gnu C Compiler).

No Windows há basicamente dois tipos de programas de usuário:

• aplicações para o console (Console Applications), que são executadas numa janela de

texto (também conhecida como Prompt do MS-DOS); e

• aplicações Gráficas (GUI Applications), que usam janelas, menus e outros elementos

visuais como parte de sua interface com o programador.

No semestre passado tive a disciplina de Compiladores na UTAD em Vila Real e usava nas aulas práticas o Dev-c++, por isso recomendo o vivamente, pois é acessivel para qualquer um usar, e não está desatualizado!!!! :(:)

Sandra Garcia

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

O DevC ++ é um bom compilador. Eu recomendo. Não estará assim tão desactualizado quanto isso na minha opinião. Além de que o podes actualizar.

Eu vi que recomendam o Devc++ como compilador para C.Eu descarreguei-o mas parece desactualizado , será melhor escolher outro ou mesmo desactualizado ainda o continuam a recomendar :)?

DevC++ NÃO É UM COMPILADOR!!!

No semestre passado tive a disciplina de Compiladores na UTAD em Vila Real e usava nas aulas práticas o Dev-c++, por isso recomendo o vivamente, pois é acessivel para qualquer um usar, e não está desatualizado!!!! :(:P

Já experimentaste o Code::Blocks?

Comecei a programar no DevC++, mas quando descobri o Code::Blocks não quis outra coisa, além que o DevC++ é limitado em termos de compiladores, só usas o MinGW enquando no C::B podes usar montes de compiladores, para mais o Code::Blocks está muito mais atualizado do que o DevC++.

As cores do C::B predefinidas são muito mais bonitas :P

Mas se queres aplicações a "serio" em Windows é certamente o Visual Studio e/ou QT.Creator(tanto para windows como para outras plataformas, além que tem uma excelente framework).


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Polmax

DevC++ NÃO É UM COMPILADOR!!!

Calma já percebi xD.

Eu já usei o VC tanto para C++ como para C#

Mas nunca usei nada para C e por isto estava a perguntar mas acho que vou ficar com o VC , apesar do tamanho (Que não é nenhum problema)

gosto da interface e não vou ter problemas de actualização em nenhum momento :(

O Code::Blocks não conheço mas vou experimentar  :)

Já agora , pra semana começamos com programação imperativa na UM , alguém sabe qual eles "preferem que usemos" ou que vão recomendar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Já agora , pra semana começamos com programação imperativa na UM , alguém sabe qual eles "preferem que usemos" ou que vão recomendar?

garanto-te que a perferencia deles e que os trabalhos estejam correctos ... o que usas para os fazer nao faz a menor diferença

mas no final aconcelho a não usar o VC++ pela simples razão que podes muito bem trabalhar no linux e ficares a arder com a escolha do VC++ ...

escolhe um IDE que de para usar um compilador compativel com mais sistemas operativos como o gcc (mingw para windows)


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Eles de certeza que aconselham algum compilador , isso foi o que eu perguntei.

deve ser o GCC ou o MinGW.

Mas nunca usei nada para C e por isto estava a perguntar mas acho que vou ficar com o VC , apesar do tamanho (Que não é nenhum problema)

C++ é quase 100% compatível com C por isso podes compilar com o VC++, mas dou a mesma recomendação do que o HappyHippyHippo


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

C++ é quase 100% compatível com C

Assim como o sotaque madeirense é quase 100% compativel com o sotaque continental?

Ou o ingles do Reino Unido com o ingles dos Estados Unidos?

Por isso é que se veem tantos casts (desnecessarios) em C

int *ptr = malloc(100 * sizeof *ptr);

int *ptr = (int*)malloc(100 * sizeof *ptr);

Alias, em C++, segundo penso, provavelmente era melhor usar outra maneira de gerir a memoria.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mundo

pomax tambem ando na UM e aconselho te a usar o netbeans/eclipse +gcc, alguns profs querem que uses bloco de notas e compiles o teu proprio codigo, isso depende

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Polmax

Eu depois vou testar e escolho então .

Referente ao VC tenho uma duvida , quando tiro o visual c++ express + express ele esta preparado tanto para C++ como para C?

é que só consigo escolher C++

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Assim como o sotaque madeirense é quase 100% compativel com o sotaque continental?

Ou o ingles do Reino Unido com o ingles dos Estados Unidos?

Falta o quase, mas "praticamente" todo o código em C funciona em C++ :)

Por isso é que se veem tantos casts (desnecessarios) em C

int *ptr = malloc(100 * sizeof *ptr);

int *ptr = (int*)malloc(100 * sizeof *ptr);

Alias, em C++, segundo penso, provavelmente era melhor usar outra maneira de gerir a memoria.

Não terás trocado o código, pela a frase parece que trocaste o [ code = ]  "c" com o "cpp".

Em C++ é aconselhado usar o new e o delete.

int *ptr = new int[100];

Referente ao VC tenho uma duvida , quando tiro o visual c++ express + express ele esta preparado tanto para C++ como para C?

é que só consigo escolher C++

Sim, o VC++ compila C também, ainda tens suporte para "class", templates e heranças :P (estou a brincar, com isto fica com código C++ :( )

Quando alguém tem uma dúvida aqui no fórum de C, eu compilo sempre os programas com o g++ e nunca tive problemas.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

O VC++ suporta C, testei no Code::Blocks com o compilador VC++ e funcionou perfeitamente, não experimentei no Visual Studio porque tive preguiça de criar um projecto novo :(

Mas podes testar e ver se funciona.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Compilei todos os 516 ficheiros de C na minha directoria de "lixo" como C e como C++.

Resultado

Em 516 compilações

356 'funcionaram' com o gcc -std=c89 -pedantic -Wall -Werror -lm (68.99%)

255 'funcionaram' com o g++ -std=c++98 -pedantic -Wall -Werror -lm (49.42%)

Ou seja, 71.63% de programas C89 correctos são programas C++98 correctos.

Sem o -Wall os numeros passam a 379 (73.45%), 294 (56.98%), e 77.57%

Assumindo que a minha directoria de "lixo" seja significativa ... dizer que duas linguagens com interpretações diferentes para 28.37% documentos são "praticamente iguais" é, no minimo, um grande exagero de linguagem :(

Programa usado para testar as diferenças entre C e C++:

#define _BSD_SOURCE
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char **argv) {
  int tot = 0;
  int gcc = 0, gpp = 0;
  DIR *d;
  struct dirent *f;
  char gcccommand[1000];
  char gppcommand[1000];
  static const char gcchead[] = "gcc -std=c89 -pedantic -Wall -Werror";
  static const char gpphead[] = "g++ -std=c++98 -pedantic -Wall -Werror";
  static const char commandtail[] = "-lm >/dev/null 2>&1";
  char path[1000] = ".";

  if (argc == 2) {
    strcpy(path, argv[1]);
    chdir(path);
  }

  d = opendir(path);
  while ((f = readdir(d)) != NULL) {
    if (f->d_type == DT_REG) {
      size_t len = strlen(f->d_name);
      if (f->d_name[len - 1] == 'c') {
        sprintf(gcccommand, "%s %s %s", gcchead, f->d_name, commandtail);
        sprintf(gppcommand, "%s %s %s", gpphead, f->d_name, commandtail);
        gcc += !system(gcccommand);
        gpp += !system(gppcommand);
        tot += 1;
      }
    }
  }
  closedir(d);

  printf("Em %d compilações\n", tot);
  printf("%d 'funcionaram' com o gcc -std=c89 -pedantic -Wall -Werror -lm (%.2f%%)\n", gcc, gcc * 100.0 / tot);
  printf("%d 'funcionaram' com o g++ -std=c++98 -pedantic -Wall -Werror -lm (%.2f%%)\n", gpp, gpp * 100.0 / tot);
  printf("\n");
  printf("Ou seja, %.2f%% de programas C89 correctos são programas C++98 correctos.\n", gpp * 100.0 / gcc);
  return 0;
}


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Polmax

vc++ funciona tb, mas tens de criar um projecto win32 em branco!

Quando crio com win32 dame erro , ate agora só consegui compilar e executar o projecto quando uso "console aplication" com o código do .c

Sim com o empty project também da , obrigado :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Compilei todos os 516 ficheiros de C na minha directoria de "lixo" como C e como C++.

Resultado

Em 516 compilações

356 'funcionaram' com o gcc -std=c89 -pedantic -Wall -Werror -lm (68.99%)

255 'funcionaram' com o g++ -std=c++98 -pedantic -Wall -Werror -lm (49.42%)

Ou seja, 71.63% de programas C89 correctos são programas C++98 correctos.

Sem o -Wall os numeros passam a 379 (73.45%), 294 (56.98%), e 77.57%

Isso significa que na tua diretoria tens programas que não estão a funcionar, seja em C ou C++.

Assumindo que a minha directoria de "lixo" seja significativa ... dizer que duas linguagens com interpretações diferentes para 28.37% documentos são "praticamente iguais" é, no minimo, um grande exagero de linguagem :(

Falta o quase, mas "praticamente" todo o código em C funciona em C++ :)

Acho que me entendeste mal, eu disse que praticamente o código feito e escrito em C funciona em C++, claro que é uma má pratica de programação.

Mas penso que tenha sido um bocado de exagero da minha parte, mas eu nunca tive nenhum problema, em compilar código C com o GPP(G++), se não for pedir muito podes meter um programa que compile em C mas não em C++? agora estou curioso :P


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Isso significa que na tua diretoria tens programas que não estão a funcionar, seja em C ou C++.

hehe ... tenho la programas que nao sao programas completos, sem main(); outros que precisam de bibliotecas extra (eg pthread, openmp, curses, ...)

... podes meter um programa que compile em C mas não em C++?

Arranjei um pequenino -- nao me perguntes porque nao funciona em C++: eu nao conheco essa linguagem :(

Escrevi este programeta para uma pergunta do StackOverflow.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
  char Lookup[][2] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};
  int k;

  srand(time(0));
  k = rand() % (sizeof Lookup / sizeof *Lookup);
  printf("Random lookup: %.2s\n", Lookup[k]);
  return 0;
}

output da compilacao com g++ -std=c++98 -pedantic file.c

file.c: In function ‘int main()’:
file.c:6:75: error: initializer-string for array of chars is too long [-fpermissive]

--- a mensagem repete-se um total de 9 vezes ---


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kurayama

Já agora , pra semana começamos com programação imperativa na UM , alguém sabe qual eles "preferem que usemos" ou que vão recomendar?

O compilador não é importante em PI, em LI2 convêm usares o gcc e ver se o código corre em linux (se fores de lcc, acho que as cadeiras são juntas lá).

Há profs que usam ansi-c (jbb entre outros) mas não ligam muito se tu não usares, desde que não uses variable-length arrays.

Nos primeiros dois anos do curso aconselho usares linux ou mac, até porque tens cadeiras que tens de usar um deles.

No terceiro, é que te sujeitas a levar com windows  :(

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

hehe ... tenho la programas que nao sao programas completos, sem main(); outros que precisam de bibliotecas extra (eg pthread, openmp, curses, ...)

Arranjei um pequenino -- nao me perguntes porque nao funciona em C++: eu nao conheco essa linguagem :)

Escrevi este programeta para uma pergunta do StackOverflow.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
  char Lookup[][2] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};
  int k;

  srand(time(0));
  k = rand() % (sizeof Lookup / sizeof *Lookup);
  printf("Random lookup: %.2s\n", Lookup[k]);
  return 0;
}

output da compilacao com g++ -std=c++98 -pedantic file.c

file.c: In function ‘int main()’:
file.c:6:75: error: initializer-string for array of chars is too long [-fpermissive]

--- a mensagem repete-se um total de 9 vezes ---

Parece que C++ trata como se fosse um array doutro tipo(por exemplo de int), então tens que inicializar assim:

char Lookup[][2] = {{'0','1'}, {'0','2'}, {'0','3'}, {'0','4'}, {'0','5'}, {'0','6'}, {'0','7'}, {'0','8'}, {'0','9'}};

é basicamente igual ao código de criar um array bidimensional de int, float,etc.

Desconhecia esse problema :(

PS: não deveria de ser

char Lookup[][3] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};

por causa do '\0'?


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.