条件编译

yushengtingyu 2009-06-14 09:47:22
根据操作系统判断使用的函数

#ifdef _WIN32_
funtion(winpara){
......
};
#elsif _Linux_
funtion(linpara){
......
};
#else //vxworks
funtion(Vxpara){
......
};
#endif

问题:
1。为了做跨平台移植,所以准备用条件编译封装底层,语法结构式类似上面吗 ?
2.ifdef后的操作系统判断,有什么标准或者规则,比如为什么写_WIN32_,Vxworks下是什么呢 ?
3.像上面那样写了之后编译器是否有某处要定义_WIN32_或者debug要改什么设置?
...全文
34 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameyume 2009-06-15
  • 打赏
  • 举报
回复
学习
liushac 2009-06-15
  • 打赏
  • 举报
回复
It is Just what I need. 这正是我所需要的。
陽洸膂珵 2009-06-15
  • 打赏
  • 举报
回复
学习!
lee673 2009-06-14
  • 打赏
  • 举报
回复
up
光宇广贞 2009-06-14
  • 打赏
  • 举报
回复
这个……随便打开一个,类似于
windows.h
之类的头文件,你所需要的格式就一目了然了。
星空仰望者 2009-06-14
  • 打赏
  • 举报
回复
那些宏应该在makefile里定义的
huobing002 2009-06-14
  • 打赏
  • 举报
回复
just study
whhvc 2009-06-14
  • 打赏
  • 举报
回复
ding
  • 打赏
  • 举报
回复
http://blog.csdn.net/caojunling/archive/2008/07/13/2645496.aspx

自己根据需要移植的环境,添加新的宏跟跳转就可以了。
ice50303 2009-06-14
  • 打赏
  • 举报
回复
蹭个分
oyljerry 2009-06-14
  • 打赏
  • 举报
回复
对于windows上vc编译器,默认会在工程中给你添加_WIN32,至于其他平台的编译器,要检查一下,楼主的代码的思路是正确
oyljerry 2009-06-14
  • 打赏
  • 举报
回复
定义了预编译宏,然后在不同的编译器上,根据当前平台,添加_WIN32,_VxWorks等
amossavez 2009-06-14
  • 打赏
  • 举报
回复
就是这么回事!!!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧