《转的》 使用了一段时间的 Visual Studio 2005 之后,发现它的 C++ 编译器比以往更多地遵循 C++ 标准。给我印象比较深的语法变化有两个:
将代码从2003平台上移植到2005上发现一:
1、for 循环语句中循环控制变量的有效范围更加明确
以前我们在for语句中可以这么写:
for (int i=0; i<max; i++) {
// do something
}
if (i>0) {
// do something else
}
这段代码中 i 是循环控制变量,循环处理完之后,在循环语句之外,i 还是一个有效变量,可以在后面的代码中继续使用它。
在正式的 C++ 标准中,这是不允许的。
使用新的编译器编译原有的代码时,必须作类似下面这样的修改:
int i; // move outside for loop
for (i=0; i<max; i++) {
// do something
}
if (i>0) {
// do something else
}
2、关于常量的类型定义更加严格了,对于下面这样的常量定义,以前编译器会将之默认为 int 类型:
const BUFLEN=255;
但在新的编译器中,这种隐式地将没有类型声明的常量指定为整型的语法将被禁止。必须向下面这样声明类型:
const int BUFLEN=255;
3、除此之外,在使用 Visual Studio 2005 编写 MFC 程序时,还碰到一个小小的变化,那就是 CWnd::OnNcHitTest 的返回值原来为 UINT,现在变为 LRESULT。
分享到:
相关推荐
Visual Assist for 2005是一款专为Visual Studio 2005设计的插件,它针对.NET Framework 2.0环境,极大地提升了.NET 2003用户的编程体验。这款工具的核心价值在于其智能代码补全和导航功能,使得开发者在编写代码时...
这种模式引入了一个中间组件——Discovery Proxy (DP) 或发现代理。DP负责监听多播的探测和解析请求,并在接收到这些请求后,代替目标服务向客户端发送公告(Announcement)消息。客户端监听到DP的消息后,会自动...
(SVG)是一种图像格式,可实现无像素缩放的无限缩放,这与JPEG和PNG等不同。 在2005年,David Astling发布了可以将SVG文件转换为Keynote形状的。 此应用程序无法在更新版本的macOS上运行(可能是由于32位),因此...
**症状**: 当尝试在VS2005中启动调试时,会弹出错误提示:“Error while trying to run project: Unable to start debugging. 绑定句柄无效。” **原因**: 此问题通常是由“Terminal Services”服务被禁用引起的。 ...
1. **新设备上线时**:当一个新设备连接到网络后,可以自动广播探针消息来发现其他支持ONVIF的设备,从而快速构建起整个系统的拓扑结构。 2. **系统维护时**:管理员可以定期发送探针消息来检查网络中的设备状态,...
Supports building detours with Visual Studio 2005, Visual Studio .NET 2003, Visual Studio .NET (VC8), and Visual Studio (VC7). Detours 2.1 comes in two editions: Detours Express 2.1 is available for ...
总之,在使用LINQ to SQL时,处理并发性是一个重要的环节,需要根据业务需求选择合适的并发控制策略。通过理解并应用上述方法,你可以确保在多用户环境中有效地管理数据的并发访问,避免数据不一致性的风险。请参考...
Perkins的《Introduction to High Energy Physics》(第四版):世界图书出版公司2003年出版,是高能物理领域的经典教材。 7. F.E. Close的《An Introduction to Quarks and Partons》:Academic Press Inc. Ltd...
Day 0 Time To Patch 28 18 1 Day Zotob (2005) Days Sasser (2004) __ 发布补丁 HP服务器全文共22页,当前为第2页。 3 什么是〝Zero-day〞要挟? Zero-day要挟就是指曾经发现了系统或软件的破绽,但是目前没有处置...
这对于那些已经拥有Visual Studio 2005(VS2005)的程序员来说尤其有用,因为官方的Duwamish7.1安装程序需要Visual Studio 2003作为前置条件。 C#是一种面向对象的编程语言,由微软公司为.NET Framework开发,它...
根据你的开发环境,选择合适的版本(如 .NET Framework 2003 或 2005)添加到你的解决方案中。注意,项目中的文件默认不编译,你需要手动更改 *Entity.cs 和 *DynamicQuery.cs 文件的生成操作属性为“编译”,以便...
这一过程有助于尽早发现集成问题,并确保代码质量。MSBuild在实现Daily Build流程中扮演着重要角色,它可以: 1. **读取并理解** .csproj 文件,控制编译器生成整个解决方案。 2. **提供定制化** 的构建脚本,允许...
第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features(芯片组设定) 6 4.Integrated Peripherals(集成...
1. **相变特性**:通过TG-DTA分析发现,CZP在加热过程中发生了明显的相变现象。这些变化与样品中水分的蒸发以及有机物的分解有关。 2. **相组成与晶体结构**:XRD结果显示,CZP主要由单相构成,且随着热处理温度的...
RFC1 主机软件 RFC2 主机软件 RFC3 文档规范 RFC4 网络时间表 RFC6 与 Bob Kahn 会话 RFC10 文档规范 RFC13 零文本长度的EOF信息 RFC16 M.I.T RFC18 IMP-IMP和主机-主机控制联接 RFC19 可用来降低有限交换节点阻塞的...
RFC1 主机软件 RFC2 主机软件 RFC3 文档规范 RFC4 网络时间表 RFC6 与 Bob Kahn 会话 RFC10 文档规范 RFC13 零文本长度的EOF信息 RFC16 M.I.T RFC18 IMP-IMP和主机-主机控制联接 RFC19_可用来降低有限交换节点阻塞的...
RFC2005 IP移动性的适用性陈述 RFC2011 SNMPv2 管理信息基础用于Internet 协议使用SMIv2 RFC2012 SNMPv2 管理信息基础 用于传输控制协议使用SMIv2 RFC2013 有关采用SMIv2用户数据报协议的SNMPv2管理信息数据库 ...
1. **创建服务合同**:首先,你需要定义一个服务合同,该合同声明服务操作是否支持事务。使用`[ServiceContract]`和`[OperationContract]`特性来定义服务接口,并使用`[OperationBehavior]`特性设置`...