Jump to content
Sign in to follow this  
vbmaster

Void on Linux

Recommended Posts

vbmaster

Pois é... tenho gostado bastante de programar em linux, o ambiente é mais leve, os output's ocupam menos espaço (os meus projects em c++ feitos em vs.net 2003 já levavam uns bons 300MB) e em suma tem funcionado bem.

Já sabia que 'voids' em linux não funcionavam, infelizmente, porque eu prefiro sempre declarar uma função como 'void' por calanzisse, mas cheguei agora a uma parte do meu livro em que começa a falar de void pointers, e penso que estes como no fundo não deixam de ser voids, continuam a não estar acessíveis em linux...

O que me leva a fazer um post é no fundo, perguntar o porquê disto, e saber se há algum IDE ou compilador que aceite voids.... até agora só tenho usado para programar em linux, o gedit com modo de realce c++, e o g++ para compilar.

Fiquem bem :P ;):D

Share this post


Link to post
Share on other sites
Bruno

N percebi bem a dúvida... mas funções q retornam void são aceites... podes dar um exemplo em código do que falas?

Share this post


Link to post
Share on other sites
vbmaster

São?

Tipo:

#include <iostream>
using namespace std;
void main () {
cout << "Cheiras mal da boca!" << endl;
}

E ele diz, o g++, error: main must return int.

Share this post


Link to post
Share on other sites
Bruno

Pois claro... :D Qq main retorna um inteiro :P (para o sistema saber se acabou ou não com erros)

Qq outra função já pode ser void! :D

Share this post


Link to post
Share on other sites
Bruno

Hmmm, no DEV-C++ q usa o gcc/g++ dá o mm erro q te dava a ti...

Não sei qual é o compilador do vs.net... o proprio compilador poderá mudar o void para int... o gcc/g++ obriga-te a colocares tudo bem :P (e se for a versão 4 ainda consegue ser mais "chata" q as outras)

Share this post


Link to post
Share on other sites
vbmaster

O vs.net é um IDE, usa o seu próprio compilador.

Mas então em príncipio não terei problemas em void pointers?

Share this post


Link to post
Share on other sites
Bruno

Epá acho q n...

Mas já agora o facto de ser um IDE n quer dizer q usei um compilador da GNU :D O Dev-C++ usa :P

Share this post


Link to post
Share on other sites
vbmaster

Pois mas esse é free, não estou a ver a MS a ir buscar os compiladores dos outros..

mas ao que me tenho apercebido void é um tipo de varíavel como qualquer outra em c++, porque haveria o linux de não a deixar declarar uma função?

Enfim... já agora... que IDE usas aí em linux, se é que usas IDE.

Share this post


Link to post
Share on other sites
Bruno

Mas afinal há algum problema ou n com o void? O da Main é obvio q n é nenhum problema uma vez q o sistema precisa de saber como o programa terminou!

Eu n uso nenhum IDE... uso apenas emacs e g++ :P

Share this post


Link to post
Share on other sites
QuickFire

Eu usava o Eclipse que é excelente mas agora estou dividido :P Emacs no portatil e Anjuta (Muito bom mesmo :D adoro é mesmo do meu estilo ) para o PC :D para Windows é o dev-cpp

Share this post


Link to post
Share on other sites
vbmaster

O único problema é que o meu livro também não apresenta nenhum pedaço de código completo onde eu possa testar realmente se os void's sempre são suportados e só têm aquela irregularidade na declaração de funções...

Senão já tinha dado feedback... :\

Share this post


Link to post
Share on other sites
Bruno

Hmmm, aposto que não há nenhuma irregularidade... só na main é que n podes fazê-lo e já sabemos porquê! :D

Share this post


Link to post
Share on other sites
theproject

boas, o main por definicao retorna int para poder retornar um inteiro pa funcao _start k é o compilador k a mete... esse inteiro por definicao é 0 se tudo correu bem... kk outra funcao pode retornar kk tipo... se declarares uma funcao como retornando void... bem.. tas a dizer "esta funcao nao retorna nada" .... já se disseres k ela retorna void* nao tas a dizer k ela retorna um ponteiro para nada mas sim um ponteiro pa kk coisa... :D

hasta

Share this post


Link to post
Share on other sites
theproject

Obviamente, a unika coisa k nao podes fazer com um void e tentares sakar um valor de retorno de uma funcao k "retorna" void... isso no gcc por exemplo vai te dar uma mensagem k e kk coisa como : "void value not ignored as it should be" .. pelo contrario, uma funcao k retorna kk coisa (por exemplo um int) nao somos obrigados a apanhar o valor de retorno... no entanto é considerado boa programacao apanhar e testar os valores de retorno para saber se as funcoes correram bem... é comum as funcoes de sistema retornarem um int k segue a mm convencao k eu disse.. 0 pa tudo bem e != 0 pa kk erro... ou entao negativo para erro e >=0 para ok... isso ja depende da funcao...

fikem

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.