[C/C++]_[判断程序是32位还是64位]

场景:

1.编译器没有显式的指定。

2.需要根据32,64做不同的处理.


方法1:

  1. #include "stdio.h"  
  2.   
  3. int main(int argc,char * argv[])  
  4. {  
  5.     void* number =  0;  
  6.     printf("%d\n",sizeof(&number));  
  7. }  

输出8就是64位的,4就是32位的。根据逻辑地址判断。


#include<stdlib.h>

#include <stdio.h>

int main(int argc  ,char* argv)

{

   #ifdef __x86_64__

       printf("__x86_64__");

   #elif __i386__

       printf("__i386__");

   #endif

   return 0;

}


--------------------------------------------------我是分割线 --------------------------------

  1. #include <stdio.h>
  2. int main()
  3. {


  4.    void a = 0x80000000;
  5.     printf("os is %d\n",sizeof(int));
  6.     union ut
  7.     {
  8.         short s;
  9.         char c[2];
  10.     } u;
  11.     if(sizeof(short) == 2)
  12.     {
  13.         u.s = 0x0102;
  14.         if(u.c[0] == 1 && u.c[1] == 2)
  15.         {
  16.             printf("big enidan\n");
  17.         }
  18.         else if(u.c[0] == 2 && u.c[1] == 1)
  19.         {
  20.             printf("little endian.\n");
  21.         }
  22.         return 0;
  23.     }
  24.     return 0;
  25. }

判断是否c语言:

   #ifdef __cplusplus
        printf("\n this is c++ language\n");
   #else
        printf("\nthis is c language\n");
   #endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>