Linux下多线程编程学习【2】——同代…

来源:互联网 发布:php当中的 k 编辑:程序博客网 时间:2024/06/06 01:31
要想一份代码在linux下能编译,在windows下也能编译,就得应用宏处理。最初产生这个构想,是在学习opengl的时候,发觉glut库是跨平台的,查看源代码后发觉glut里面进行了很多宏处理。这是第一次知道编译器在进行编译的时候也会定义一些宏关键字。

程序结果如下:

在win8系统下,用devcpp编译的结果
Linux下多线程编程学习【2】——同代码跨平台优化

在linux下用gcc编译的结果
Linux下多线程编程学习【2】——同代码跨平台优化

参考链接:http://blog.csdn.net/liangbch/article/details/36020391

源代码:
#include <  stdio.h >
void test(){
    intlen=sizeof(int)*8;
   printf("sizeof(int)=%d\n",len);

   len=sizeof(int *)*8;
   printf("sizeof(int*)=%d\n",len);

#ifdef _MSC_VER
   printf("_MSC_VER is defined\n");
#endif

#ifdef __GNUC__
   printf("__GNUC__ is defined\n");
#endif

#ifdef __INTEL__
   printf("__INTEL__  is defined\n");
#endif

#ifdef __i386__
   printf("__i386__  is defined\n");
#endif

#ifdef __x86_64__
   printf("__x86_64__  is defined\n");
#endif

#ifdef _WIN32
   printf("_WIN32 is defined\n");
#endif

#ifdef _WIN64
   printf("_WIN64 is defined\n");
#endif


#ifdef __linux__
   printf("__linux__ is defined\n");
#endif

#ifdef __LP64__
   printf("__LP64__ is defined\n");
#endif


#ifdef __amd64
   printf("__amd64 is defined\n");
#endif
}

int main(int argc, char* argv[])
{
   test();
    return0;
}

0 0
原创粉丝点击