C++编程注意事项】的更多相关文章

之前转的: 将程序移植到64位Windows 还有自己乱写的一篇: 跨平台编程注意事项(一) 之前对于x64平台的移植都是纸上谈兵,算是前期准备工作, 但起码在写代码时,已经非常注意了.所以现在移植起来相对很顺利.昨天用了一天时间把自己代码添加了x64支持.贴一下遇到的问题,就作为注意事项吧,以下文字来自我的cnblogs博客的另一文章,有修改 1.指针到数值的转换.  指针 (如void*)转到数值,要用intptr_t或者uintptr_t (用Win32的INT_PTR也可以,当然用C/C…
保证线程安全的三种方法: 不要跨线程访问共享变量 使共享变量是final类型的 将共享变量的操作加上同步 一开始就将类设计成线程安全的, 比在后期重新修复它,更容易. 编写多线程程序, 首先保证它是正确的, 其次再考虑性能. 无状态或只读对象永远是线程安全的. 不要将一个共享变量裸露在多线程环境下(无同步或不可变性保护) 多线程环境下的延迟加载需要同步的保护, 因为延迟加载会造成对象重复实例化 对于volatile声明的数值类型变量进行运算, 往往是不安全的(volatile只能保证可见性,不能…
大的问题 先记录一下跨平台时需要注意的大方向. 1.OS和CPU 同一个操作系统, CPU也可能是不一样的, 比如windows也有基于arm CPU的版本,而android目前有x86,arm,mips几种. 即便是同一种CPU架构系列, 细节特性也不一样. 所以目前个人准备了3个宏开关来判断目标平台. OS, CPU, CPUbits OS对应不同的操作系统, CPU对应不同的CPU架构(比如x86和arm), CPU-bits目前是32和64, 比如CPU是x86时, CPUbits是64…
网络编程的基础知识 什么是计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备通信线路互连成一个规模大.功能强的网络系统. 计算机网络主要能做些下面功能: 1)资源共享 2)信息传输与集中处理 3)均衡负荷与分布处理 4)综合信息服务 计算机网络依照规模大小和延伸范围来分: 1)局域网(LAN) 2)城域网(MAN) 3)广域网(WAN) 计算机网络依照网络的拓扑结构来划分: 1)星型网络 2)总线型网络 3)环线网络 4)树型网络 5)星型环线网络 ... 计算机网络依照网络的传输介质…
目录 一丶驱动是如何运行的 1.服务注册驱动 二丶Ring3跟Ring0通讯的几种方式 1.IOCTRL_CODE 控制代码的几种IO 2.非控制 缓冲区的三种方式. 三丶Ring3跟Ring0开发区别 1.什么是Ring3 什么是Ring0 四丶IRQL中断级别 五丶驱动函数的分类 六丶编写内核中的注意事项 一丶驱动是如何运行的 1.服务注册驱动 我们编写驱动.一定要知道驱动是如何运行的 首先在我们安装一个驱动的时候,会创建一个服务.(注册表) 在 HKEY_LOCAL_MACHINE\SYS…
1.所有成员变量在构造函数中进行初始化操作,如指针赋值为空,bool赋值为FALSE(默认为TRUE); 2.构造函数与析构函数配对出现,执行反向操作,保证执行析构之后,没有遗留问题存在: 3.如果需要进行复杂的初始化操作,不要放置在构造函数中实现,提供初始化函数,如Initialize: 4.对应初始化的析构,也可以提供相反操作,如Reset: 5.所有申请的内存空间应及时释放,new运算符与delete运算符必须成对存在,并且逻辑应保持完整,避免内存泄露: 7.如果需要与托管语言进行互操作,…
Android应用程序访问互联网资源时,在Wifi的情况下处理网络连接按照上文所讲述的方法步骤即可顺利实现:但如果当前Android设备的联网方式是通过移动运营商的网络服务为中转,间接访问的互联网资源时,则就涉及到在创建HTTP链接之前需要设置Proxy,即可尽量避免网络中断访问的情况,顺利访问互联网. Proxy中文即代理.已经插入手机卡的Android设备,点击"设置"→"无线和网络"→"移动网络设置"→"接入点名称",任…
Socket API 是网络应用程序开发中实际应用的标准 API.虽然该 API 简单.可是开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示怎样避免它们. 隐患 1.忽略返回状态 第一个隐患非常明显,但它是开发新手最easy犯的一个错误. 假设您忽略函数的返回状态,当它们失败或部分成功的时候,您或许会迷失. 反过来.这可能传播错误.使定位问题的源头变得困难. 捕获并检查每个返回状态.而不是忽略它们.考虑清单 1 显示的样例,一个套接字 send 函数. 清单 1. 忽略 AP…
如何使用POST请求和GET请求Web网站发送请求,下面的参考代码: import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class GetTest { private String url; private String param; /** *…
1.大小写敏感,要注意区分大小写: 2.一般每一句代码写完之后,后面以":"结尾: 3.在代码中,括号的出现一般都是成对的,如:{}.…