32 ou 64 bits ? [RESOLVIDO]

1. 32 ou 64 bits ? [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 02/03/2016 - 18:49h

Olá !

Para minha surpresa em 64 bits os tipos (short e long) tem SIZEOF ( 2 e 4 ) ... testado no windows com gcc.

Vou direto a minha pergunta:
Qual macro ou UQ usaria para saber se o compilador/programa seria em 32 ou 64 bits ?

No windows ( _WIN32 e _WIN64 ) não ajuda em nada ... pensei que ajudaria .




  


2. Re: 32 ou 64 bits ? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2016 - 22:44h

Não sei se é o que você quer, mas tem uns dias que um cara escreveu algo sobre.
https://www.vivaolinux.com.br/script/E-32-ou-64-bits/

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: 32 ou 64 bits ? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/03/2016 - 23:48h

gokernel escreveu:

Olá !

Para minha surpresa em 64 bits os tipos (short e long) tem SIZEOF ( 2 e 4 ) ... testado no windows com gcc.


É mesmo? Tem certeza que seu compilador é de 64 bits? Sendo de 64 bits, será que ele não está com multilib/multiarch habilitado, e ajustado por default para 32 bits?

Vou direto a minha pergunta:
Qual macro ou UQ usaria para saber se o compilador/programa seria em 32 ou 64 bits ?

No windows ( _WIN32 e _WIN64 ) não ajuda em nada ... pensei que ajudaria .


Dê uma olhada nesta página: https://sourceforge.net/p/predef/wiki/Home/ (especialmente as seções (links) “Compilers”, “Operating systems” e “Architectures”).

Você também pode ver todas as macros definidas pelo GCC que você está usando. Para tanto, crie um arquivo vazio com extensão “.c” (ou “.cpp”, se quiser C++) e rode “gcc -E -dM <aquivo.c>” (ou g++, se for em C++).


4. Re: 32 ou 64 bits ? [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 03/03/2016 - 17:52h


Olá pessoal, grato por ajudarem !!!

Sam L.:
Sim é bem legal essas macros e são essas que vou utilizar até aprender algo mais em ( 32 e 64 bits ).

listeiro_037:
Ok, era algo similar a isso mesmo que queria.

paulo1205:
Sim tenho certeza que o compilador é de 64 bits ... agora tenho compilador de 32 e 64 bits.
E valeu pela dica ( gcc -E -dM <aquivo.c> ) , não conhecia esta.

Bom o que quero é isso:

#include <stdio.h>

#if defined(__GNUC__) && defined(_X86_)
#define LIBRARY_32
#endif
#if defined(__GNUC__) && defined(__x86_64__)
#define LIBRARY_64
#endif

int main (void)
{
#ifdef LIBRARY_32
printf ("App 32 bits\n");
#endif

#ifdef LIBRARY_64
printf ("App 64 bits\n");
#endif

return 0;
}


Aproveitando a oportunidade, quem quiser postar o sistema e as MACROS em 32 e 64 bits me ajudaria a codar melhor ...

O meu é este:
gokernel:
SISTEMA OPERACIONAL: Windows 7 Home Edition ... original claro.
COMPILADOR: gcc
Macro 32 bits gerado pelo gcc:
http://codepad.org/hhnQFFZf
Macro 64 bits gerado pelo gcc:
http://codepad.org/42n1u2bP

Desde já grato a todos !








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts