请问bc中关于__BORLANDC__的宏定义,在哪里可以找到?

ryrx 2005-04-13 11:04:22
如题,谢谢。
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
崔作非 2005-04-14
  • 打赏
  • 举报
回复
再简单说一下,BCC32存在不同版本的情况和JDK存在多版本的道理差不多,同一台机器上可以拥有多少JDK,而你在同一时刻只能使用同一版本的编译器来工作。
这个宏还有一个意义,因为C++并没有固定的编译器/编译器编写规范,所以不同的C++编译器经常使用不同的方法来实现同样的功能,比如说内存管理。如果你一个C++ FrameWork的设计者,那么你就得考虑到不同的编译环境,因此说,在C++ FrameWork中经常能找到判断当前编译器是什么的语句,如
#ifdef __BORLANDC__,如果为真,说明__BORLANDC__有定义,也就说明当前的编译器是borland C++编译器了,那么下面就可以编译与Borland 编译器有关的代码了。
NetSpider9804040 2005-04-14
  • 打赏
  • 举报
回复
学习学习,同时顶顶先!
ryrx 2005-04-13
  • 打赏
  • 举报
回复
请问为什么编译器版本号就不能是固定值?
崔作非 2005-04-13
  • 打赏
  • 举报
回复
我觉得这个宏不是定义出来的,是被做进BCC32.exe中的。因为这个宏的意思是返回borland编译器的版本号,假设,它在头文件中有定义,所有的宏常量都是定义时就给出值的,那么它就不能返回正确的编译器版本号了,由此反证得出,它是没有定义的。
崔作非 2005-04-13
  • 打赏
  • 举报
回复
因为编译器可以有多个呀,不同版本的BCC32的版本是不一样的,一般来说,绝大多数的C++代码能够在5.5以上的编译器通过。
如你你装有BCB 6 Update 4的话你的编译器版本还会更高的,好像是5.6.4。
Borland Win32下的所有C++编译器都是出自一家的。如现在的BCB和CBX是共用一个。
这个宏的意义在于让一些使用新的C++/VCL特性的C代码,能够在老的编译器下通过或者是报错不能编译,防止不正确的运行程序代码。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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