Dexter's Lab Posted June 3, 2013 at 05:04 PM Report #510730 Posted June 3, 2013 at 05:04 PM Boas pessoal Não consigo encontrar informação suficiente na net sobre esta questão: será que devo colocar um programa em .c noutro "main.c"? Porque os .h são genéricos e queria utilizá-los de forma geral, mas os .c como sendo subdivisões do programa além-funções(). Como faço isso? Porque estou a tentar e, no entanto, não estou a conseguir. Obrigado desde já
Dexter's Lab Posted June 3, 2013 at 05:16 PM Author Report #510732 Posted June 3, 2013 at 05:16 PM Acabei por descobrir sozinho. Retirei o main() do ficheiro adicionado. Pergunto ainda, no entanto, se é boa prática segmentar o programa desta forma, em vez de ter códigos de +200 linhas com funções dispersas.
pmg Posted June 3, 2013 at 05:35 PM Report #510736 Posted June 3, 2013 at 05:35 PM Nao, nao é boa pratica segmentar o programa em varios ficheiros de extensao .c e fazer o #include deles. O que é boa pratica é escrever funcoes relacionadas num ficheiro de extensao .c e o correspondente ficheiro de extensao .h. Depois ao compilar um programa (um ficheiro com extensao .c e que define a funcao main()) pede-se ao compilador para juntar os ficheiros de extensao .c necessarios. O que eu faco numa primeira abordagem é imaginar em que grandes areas se divide o problema. Depois faco um ficheiro de extensao .c e outro de extensao .h para cada area. Por exemplo, para resolver o problema "Qual é o menor numero primo maior que um numero introduzido pelo utilizador?" eu vejo logo 2 areas: INPUT, NUMEROS PRIMOS. Entao teria os ficheiros input.c e input.h (para tratar do INPUT), primo.c e primo.h (para tratar do NUMEROS PRIMOS), e o ficheiro problema.c que usa as funcionalidades fornecidas pelos outros. No fim, para compilar tudo usaria qualquer coisa como gcc problema.c input.c primo.c -o problema.exe 1 Report 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!
Dexter's Lab Posted June 3, 2013 at 07:01 PM Author Report #510743 Posted June 3, 2013 at 07:01 PM Muito obrigado pela ajuda. Mas por interesse, porque é que é má prática fazê-lo?
HappyHippyHippo Posted June 3, 2013 at 08:07 PM Report #510748 Posted June 3, 2013 at 08:07 PM porque se compilares os ficheiros separadamente e juntares tudo no linker, este irá se queixar e não concluir o processo de criação do executável. a razão disso é porque ficam a existir várias instâncias das funções em vários ficheiros objectos, e o linker não sabe qual deles usar em cada ocasião. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now