03 2012 档案

摘要:InterlockedCompareExchange128 要求目标操作数地址必须16字节对齐,否则会出访问异常。所以在分配目标操作数的时候需用特殊的分配函数:Windows 下用这个:http://msdn.microsoft.com/en-us/library/8z34s9c6(vs.71).aspxLinux 用这个:http://linux.die.net/man/3/posix_memalign 阅读全文
posted @ 2012-03-31 22:21 Lunaa 阅读(130) 评论(0) 推荐(0) 编辑
摘要:处理器的乱序和并发执行目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常 能够在一个指令周期内并发执行多条指令。处理器从L1 I-Cache预取了一批指令后,就会分析找出那些互相没有关联可以并发执行的指令,然后送到几个独立的执行单元进行并发执行。比如下面这样的代码(假定 编译器不做优化):z = x + y;p = m + n;CPU就有可能将这两行无关代码分别送到两个算术单元去同时执行。像Freescale的MPC8541这种嵌入式处理器一个指令周期能够加载4条指令、发射2条指令到流水线、用5个独立的执行 阅读全文
posted @ 2012-03-31 14:36 Lunaa 阅读(752) 评论(0) 推荐(0) 编辑
摘要:InterlockedCompareExchange128 Visual Studio 2010 - Visual C++_InterlockedCompareExchange128Microsoft SpecificPerforms a 128-bit interlocked compare and exchange.unsigned char _InterlockedCompareExchange128( __int64 volatile * Destination, __int64 ExchangeHigh, __int64 ExchangeLow, __int64 * ... 阅读全文
posted @ 2012-03-31 14:31 Lunaa 阅读(530) 评论(0) 推荐(0) 编辑
摘要:ABA problem From Wikipedia, the free encyclopediaJump to: navigation,search In multithreaded computing, theABA problem occurs during synchronization, when a location is read twice, has the same value for both reads, and "value is the same" is used to indicate "nothing has changed" 阅读全文
posted @ 2012-03-31 11:12 Lunaa 阅读(242) 评论(0) 推荐(0) 编辑
摘要:C++提供了内联函数,目的是为了提高函数的执行效率。内联函数在函数声明前面加上关键字inline 就可以了 如:inline int FunctionOne(int x); 在VC++中可使用另一关键字_forceinline 代替inline 关键字.这个关键字将命令编译器跳过一般的ROI 分析(Return On Investment --一种编程缩略语),将所对应的代码强行内联.在有写时候,编译器会拒绝将一个函数内联,使用这个关键字,用户只得到一个编译警告,就可强行内联. 在使用内联函数时,是由编译器决定它们是按普通函数处理还是将调用函数部分用实际的函数体代码替换。不允许将递归函数进行内 阅读全文
posted @ 2012-03-31 09:43 Lunaa 阅读(125) 评论(0) 推荐(0) 编辑
摘要:One of the more common questions I get about VC2005 code generation relates to the code generation of volatile on x86/x64. If we take a look at MSDN we see that it defines thesemantics for volatile in VC2005 as :oA write to a volatile object (volatile write) has Release semantics; a reference to a g 阅读全文
posted @ 2012-03-29 19:34 Lunaa 阅读(220) 评论(0) 推荐(0) 编辑
摘要:#g++ -Wall -march=pentium4 -mmmx ft.cpp -o ft -lpthread在64位机上编译出现错误:error: CPU you selected does not support x86-64 instruction set意思是:您选择的 CPU 不支持 x86-64 指令集,解决方法,修给march的值march=x86-64 ,不同的系统可能不太一样。#g++ -Wall -march=x86-64 -mmmx ft.cpp -o ft -lpthread 阅读全文
posted @ 2012-03-29 14:45 Lunaa 阅读(860) 评论(0) 推荐(0) 编辑
摘要:GCC 提供的原子操作gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type__sync_fetch_and_add(type*ptr,typevalue,...)type__sync_fetch_and_sub(type*ptr,typevalue,...)type__sync_fetch_and_or(type*ptr,typevalue,...)type__sync_fetch_and_and(type*ptr,typevalue,...)type__sync_fetch_and_xor(type*ptr,typeval 阅读全文
posted @ 2012-03-29 13:11 Lunaa 阅读(211) 评论(0) 推荐(0) 编辑
摘要:内存屏障(memory barrier) (2008-08-01 11:43) 分类: linux内核 首先看看__set_current_state()和set_current_state()函数的区别#define __set_current_state(state_value) \do { current->state = (state_value); } while (0)#define set_current_state(state_value) \set_mb(current->state, (state_value))#define set_mb(var, value 阅读全文
posted @ 2012-03-29 13:10 Lunaa 阅读(1272) 评论(0) 推荐(0) 编辑
摘要:http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.htmlNext: Object Size Checking, Previous: Offsetof, Up: C Extensions 5.44 Built-in functions for atomic memory accessThe following builtins are intended to be compatible with those described in theIntel Itanium Processor-specific Applicatio 阅读全文
posted @ 2012-03-29 11:57 Lunaa 阅读(481) 评论(0) 推荐(0) 编辑
摘要:这个问题困扰了我很久,一直都想不明白。今天好像有点通了,立即记录下来。仅是个人理解。在学习BOOST多线程库的原码时这样一个头文件引起了我的注意:interlocked_read.hpp[cpp:showcolumns] view plaincopyprint?·········10········20········30··& 阅读全文
posted @ 2012-03-29 11:48 Lunaa 阅读(681) 评论(0) 推荐(0) 编辑
摘要:Acquire and Release Semantics1(共 3)对本文的评价是有帮助评价此主题An operation has acquire semantics if other processors will always see its effect before any subsequent operation's effect. An operation hasrelease semantics if other processors will see every preceding operation's effect before the effect of 阅读全文
posted @ 2012-03-29 11:46 Lunaa 阅读(199) 评论(0) 推荐(0) 编辑
摘要:arm下的gcc内联汇编 __asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。带有C/C++表达式的内联汇编格式为: __asm__ __volatile__("Instruction List" : Output : Input : Clobber/Modify);其中每项的概念及功能用法描述如下: 1、 __asm__ __asm__是GCC 关键字asm 的宏定义: #define __asm__ asm __asm__或asm 用来声明一个内联汇 阅读全文
posted @ 2012-03-28 20:07 Lunaa 阅读(524) 评论(0) 推荐(0) 编辑
摘要:一、简介作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux 内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬件的关系非常密切,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。大多数情况下 Linux 程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在 Linux 操作系统中也可以用完全用 C 语言来实现,再加上 GCC 这一优秀的编译器目前已经能够对最终生 阅读全文
posted @ 2012-03-28 19:54 Lunaa 阅读(175) 评论(0) 推荐(0) 编辑
摘要:AT&T汇编指令GAS中每个操作都是有一个字符的后缀,表明操作数的大小。C声明GAS后缀大小(字节)charb1shortw2(unsigned) int / long / char*l4floats4doublel8long doublet10/12注意:GAL使用后缀“l”同时表示4字节整数和8字节双精度浮点数,这不会产生歧义因为浮点数使用的是完全不同的指令和寄存器。操作数格式:格式操作数值名称样例(GAS = C语言)$ImmImm立即数寻址$1 = 1EaR[Ea]寄存器寻址%eax = eaxImmM[Imm]绝对寻址0x104 = *0x104(Ea)M[R[Ea]]间接寻 阅读全文
posted @ 2012-03-28 19:51 Lunaa 阅读(422) 评论(0) 推荐(0) 编辑
摘要:如果您是 Linux 内核的开发人员,您会发现自己经常要对与体系结构高度相关的功能进行编码或优化代码路径。您很可能是通过将汇编语言指令插入到 C 语句的中间(又称为内联汇编的一种方法)来执行这些任务的。让我们看一下 Linux 中内联汇编的特定用法。(我们将讨论限制在 IA32 汇编。)GNU 汇编程序简述让我们首先看一下 Linux 中使用的基本汇编程序语法。GCC(用于 Linux 的 GNU C 编译器)使用 AT&T 汇编语法。下面列出了这种语法的一些基本规则。(该列表肯定不完整;只包括了与内联汇编相关的那些规则。)寄存器命名 寄存器名称有 % 前缀。即,如果必须使用 eax, 阅读全文
posted @ 2012-03-28 19:11 Lunaa 阅读(278) 评论(0) 推荐(0) 编辑
摘要:今天看代码时看到一个有趣的东东,就是linux内核也有min函数,但它的实现很是奇怪,先贴出来:/** min()/max() macros that also do* strict type-checking.. See the* "unnecessary" pointer comparison.*/#define min(x,y) ({ typeof(x) _x = (x); typeof(y) _y = (y); (void) (&_x == &_y); _x _y ? _x : _y; })其他都很平常,但中间(void) (&_x == & 阅读全文
posted @ 2012-03-27 16:05 Lunaa 阅读(970) 评论(0) 推荐(0) 编辑
摘要:linux重定向命令应用及语法 1. 标准输入的控制 语法:命令 文件将命令的执行结果送至指定的文件中。 例如: ls -l > list 将执行“ls -l” 命令的结果写入文件list 中。 语法:命令>! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。 例如: ls -lg >! list 将执行“ls - lg” 命令的结果覆盖写入文件list 中。 语法:命令>& 文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。 例如: cc file1.c >& error 将编译file1.c 文件时所产生的任何信息写入文件e 阅读全文
posted @ 2012-03-27 15:44 Lunaa 阅读(487) 评论(0) 推荐(0) 编辑
摘要:i386和i686现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4。、i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化。GNU/Linux分为alpha、PowerPC、Sun等各个不同版本,所有从Intel386-P4都用i386版本,但i386版本中有几个内核(i486,i486,i586,i686),安装时安装程序检测到你得CPU级别后,自动为你安装相应内核。与cpu的指令集有关.I代表与intel的指令集兼容,后面的数字是指cpu的分类。因为intel的cpu经过这么久的发展,不断的更新,产生从8086,8088,8028 阅读全文
posted @ 2012-03-27 15:38 Lunaa 阅读(177) 评论(0) 推荐(0) 编辑
摘要:Intrinsic functionFrom Wikipedia, the free encyclopediaJump to: navigation,searchThis article is about compiler intrinsic functions. For X toolkit, seeIntrinsics.This article needs additional citations for verification. Please help improve this article by adding citations toreliable sources. Unsourc 阅读全文
posted @ 2012-03-26 18:20 Lunaa 阅读(191) 评论(0) 推荐(0) 编辑
摘要:说明比较 EDX:EAX 中的 64 位值与操作数(目标操作数)。如果这两个值相等,则将 ECX:EBX 中的 64 位值存储到目标操作数。否则,将目标操作数的值加载到 EDX:EAX。目标操作数是 8 字节内存位置。对于一对 EDX:EAX 与 ECX:EBX 寄存器,EDX 与 ECX 包含 64 位值的 32 个高位,EAX 与 EBX 包含 32 个低位。此指令可以配合 LOCK 前缀使用,此时指令将以原子方式执行。为了简化处理器的总线接口,目标操作数可以不考虑比较结果而接收一个写入周期。如果比较失败,则写回目标操作数;否则,将源操作数写入目标。(处理器永远不会只产生锁定读取而不产生锁 阅读全文
posted @ 2012-03-26 15:50 Lunaa 阅读(372) 评论(0) 推荐(0) 编辑
摘要:聚集索引和非聚集索引的区别(sql server索引结构及其使用)一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在.. 阅读全文
posted @ 2012-03-24 22:11 Lunaa 阅读(243) 评论(0) 推荐(0) 编辑
摘要:什么是反向代理,如何利用反向代理提高网站性能1.什么是正向代理和正向代理服务器?正向代理就是通常所说的代理,是某台电脑通过一台服务器来上Internet网的这种方式,其中这台电脑就叫客户机,这台服务器就叫正向代理服务器也就是通常所说的代理服务器。在这种方式中,你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。(通俗讲法)正向代理服务器。它只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器(一般在IE-Internet选项-连接-局域网设置),并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。2.什么是反向代理和反向代理服务器?反向代理就是网站通 阅读全文
posted @ 2012-03-24 21:31 Lunaa 阅读(420) 评论(0) 推荐(0) 编辑
摘要:当把32位程序改成X64的配置编译后,可能会出现错误:fatal error LNK1112: module machine type'x64' conflicts with target machine type'X86'通常是因为某些编译单元被编译成了X86的机器码,进一步的原因是编译选项中缺少/MACHINE,默认会选择X86;在属性中的link面板中加入/MACHINE:X64即可。The error is explicit, you are trying to link libraries that were compiled with differe 阅读全文
posted @ 2012-03-23 15:06 Lunaa 阅读(1198) 评论(0) 推荐(0) 编辑
摘要:关于 WIN32_LEAN_AND_MEAN 今天在看引擎代码时,遇到这么一句: #define WIN32_LEAN_AND_MEAN 一时还看不明白,于是本着求根问底的精神,去查了查,大概的意思是: 不加载MFC所需的模块。在编译链接时,以及在最后生成的一些供调试用的模块时,速度更快,容量更小。 阅读全文
posted @ 2012-03-23 14:29 Lunaa 阅读(157) 评论(0) 推荐(0) 编辑
摘要:Fedora与Ubuntu安装g++的命令 (2009-03-22 15:45) 分类: Unix/Linux 在Fedora中安装g++,使用命令:$ yum install gcc-c++而在Ubuntu下安装g++,直接使用命令:$ apt-get install g++日前安装了Fedora 10的KDE版本,感觉很好,这里分享上海交大的yum源:# 文件名: sjtu.repo# 把该文件置于/etc/yum.repos.d/ 目录下, 然后更新即可: yum makecache[Fedora-ftp.sjtu.edu.cn]name=Fedora 10 - i386baseurl= 阅读全文
posted @ 2012-03-23 08:58 Lunaa 阅读(207) 评论(0) 推荐(0) 编辑
摘要:今天在linux系统上使用svn checkout的时候报错:SVN Checkout: svn: Cannot negotiate authentication mechanism发现是linux系统缺少sasl加密模块,安装后即可。Linux Client: Install cyrus-sasl-md51yum installcyrus-sasl-md5 阅读全文
posted @ 2012-03-22 16:24 Lunaa 阅读(164) 评论(0) 推荐(0) 编辑
摘要:http://blog.sina.com.cn/s/blog_4ba5b45e0100iw6x.html 阅读全文
posted @ 2012-03-22 14:52 Lunaa 阅读(94) 评论(0) 推荐(0) 编辑
摘要:镜头焦距、视角和景深的关系2011-02-08 16:55:481. 镜头焦距是一个固定的物理尺寸,是多少毫米,就是多少毫米,100mm就是100mm,不会变成150mm,不会随着相机的画幅不同而改变;2. 相同焦距的镜头放在不同画幅的相机上,画幅越大,视角越大,画幅越小,视角越小;3. 相同画幅的机身,如果镜头焦距越长,景深越浅(短),焦距越短,景深越大(或者说越深、越长)。要搞明白这些道理,首先要搞懂基本概念。【下面先说说焦距、视角和画幅】通俗地说,镜头焦距是指从镜头光心(单片镜头的中心或多片镜头的成像中心)到焦平面的距离。焦平面是相机里的成像面或感光面。这个感光面从早期使用的干板式玻璃片 阅读全文
posted @ 2012-03-21 14:13 Lunaa 阅读(883) 评论(0) 推荐(0) 编辑
摘要:一,什么是防御式编程顾名思义,防御性编程是一种细致、谨慎的编程方法。为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能地“保护”自己。我们通过明确地在代码中对设想进行检查,击碎了未记录下来的设想。这是一种努力,防止(或至少是观察)我们的代码以将会展现错误行为的方式被调用。二,防御性编程实践技巧1,使用好的编码风格和合理的设计。2,不要仓促的编写代码。3,不要相信任何人,即一个模块不要相信它的输入参数是有效的;模块不能对外部输入做假设,如果需要做假设,则在模块入口做断言或者错误检查。4,编码要清晰。5,代码做适当的设计,以使内部数据不会被用户随意的修改;仅暴露合适的公有接口给外部。6, 阅读全文
posted @ 2012-03-20 10:23 Lunaa 阅读(319) 评论(0) 推荐(0) 编辑
摘要:防御式编程 防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。 1. 在非法输入(Invalid Inputs)中保护你的程序 一个好程序,在非法输入的情况下,要么什么都不输出,要么输出错误信息。有几种方法来防止非法的输入: (1)检查来自于外部资源(external sources)的所有数据的值,例如来源于网络的数据的值,来源于文件的数据的值。检查的目的是保证数据值在一个允许的范围内。 (2)检查每一个例程(routine)的输入参数值。... 阅读全文
posted @ 2012-03-20 10:12 Lunaa 阅读(149) 评论(0) 推荐(0) 编辑
摘要:防御式编程小结防御式编程小结下面列出了防御式编程的一些其它要点.它们大多是编程里的常识,不过无论如何还是值得提一下的.你可能会想要建一张”to do”列表,然后在编程过程中逐项进行检查。l 在函数的开始,检查参数的正确性。确认参数值都落在可接受的范围里。记住编程界里的一句古语:“垃圾进,垃圾出。”l 在经历一系列相关的表达式之后,检查被操作数作变量的正确性。一系列表达式会改变应用程序的状态。所以要确认其结果是正确的。l 解决问题时尽可能地处理错误而不是处理异常。l 尽可能地让函数返回一点东西——不要把返回类型设为void。什么都不返回的函数是无法用异常处理来验证的。l 一定要检查函数的返回值。 阅读全文
posted @ 2012-03-20 10:11 Lunaa 阅读(122) 评论(0) 推荐(0) 编辑
摘要:64位系统的优势?既然要采用64位系统,首先要知道64位系统的优势所在。对于技术人员来说,完全没有必要去看那些厂家拿出的厚厚的说明书、或者某个研究机构抛出的一堆的数字,64位系统的优势总结起来很简单:内存大、速度快!内存大与32位系统相比,64位系统的地址空间大大增大,达到了18PB,18PB究竟是多大呢?说出来有点吓人:4G内存的40亿倍!这么大的空间,不要说内存了,就是整个磁盘的数据都放进去也是没有任何问题的。需要注意的是:已有的32位系统由于采用了物理地址扩展技术(PAE,http://en.wikipedia.org/wiki/Physical_Address_Extension ), 阅读全文
posted @ 2012-03-17 20:26 Lunaa 阅读(297) 评论(0) 推荐(0) 编辑
摘要:一个系统的内存大小限制取决于CPU和操作系统,当然啦,也受限于物理硬件,比如主板、安装了多大的内存条等等。众所周知,32位的Intel CPU能够支持4G的物理内存,打开PAE后(有36根地址线)可以支持64G的物理内存。对于Linux而言,一个进程空间的大小为4G,其中用户空间可以使用3G。那么64位系统呢?理论上讲,64位的地址总线可以支持高达16EB(2^64)。EB是什么概念,我也不晓得。K->M->G->T->P->EThe emergence of the 64-bit architecture effectively increases the me 阅读全文
posted @ 2012-03-17 20:06 Lunaa 阅读(535) 评论(0) 推荐(0) 编辑
摘要:在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep python显示:oracle 4431 4366 0 18:56 pts/2 00:00:00 python Server.py4431就是进程号到/proc/4431下,ls -l 会看到:总用量 0-r--r--r-- 1 oracle oinstall 0 12月 29 18:58 cmdlinelrwxrwxrwx 1 oracle oinstall 0 12月 29 18:58 cwd -& 阅读全文
posted @ 2012-03-08 21:28 Lunaa 阅读(225) 评论(0) 推荐(0) 编辑
摘要:Linux 是可以使用 64 位处理器的跨平台操作系统之一,现在 64 位的系统在服务器和桌面端都已经非常常见了。很多开发人员现在都面临着需要将自己的应用程序从 32 位环境移植到 64 位环境中。随着 Intel® Itanium® 和其他 64 位处理器的引入,使软件针对 64 位环境做好准备变得日益重要了。与 UNIX® 和其他类 UNIX 操作系统一样,Linux 使用了 LP64 标准,其中指针和长整数都是 64 位的,而普通的整数则依然是 32 位的。尽管有些高级语言并不会受到这种类型大小不同的影响,但是另外一些语言(例如 C 语言)却的确会受到这种影 阅读全文
posted @ 2012-03-06 09:11 Lunaa 阅读(168) 评论(0) 推荐(0) 编辑
摘要:64位系统编译宏有点乱,整理如下:1,windows平台 _WIN32 64位和32位编译模式下均支持 _WIN64 64位编译模式下支持 _M_X64X64的cpu支持的64位 _M_IA64 IA64的cpu支持的64位 _M_IX86 X86的cpu支持,仅32位 _M_AMD64 X64 only2,linux平台 __GNUC__ 64位和32位都支持__amd64__ X64的cpu支持的64位 __amd64 X64的cpu支持的64位 __x86_64__ X64的cpu支持的64位 __x86_64 X64的cpu支持的64位 阅读全文
posted @ 2012-03-05 21:24 Lunaa 阅读(187) 评论(0) 推荐(0) 编辑
摘要:http://ntcore.com/files/vista_x64.htm 阅读全文
posted @ 2012-03-04 22:20 Lunaa 阅读(80) 评论(0) 推荐(0) 编辑
摘要:64bit CPU 知识 (IA32,IA64,EM64T,AMD64)2009-06-09 12:46因为下载Oracle软件的时候,Linux版本的Oracle软件相对不同位数的CPU,有不同的版本,特意总结一下64bit的CPU小知识,来源于网络。64位处理器是指可以对虚拟地址空间(virtual address space)进行64位寻址的处理器。64位处理器可以以64位格式存贮数据,并可以对64位操作数执行数学运算操作。另外,处理器的通用寄存器(GPRs)和运算器(ALUs)也是64位的。目前市场上Intel兼容处理器可以实现64位计算的主要有3种:1) Intel IA64,基于安 阅读全文
posted @ 2012-03-04 22:17 Lunaa 阅读(618) 评论(0) 推荐(0) 编辑
摘要:32位寄存器与64位寄存器2010-10-23 12:16 阅读全文
posted @ 2012-03-04 22:04 Lunaa 阅读(346) 评论(0) 推荐(0) 编辑
摘要:Visual C++ 64 位迁移的常见问题Visual Studio 2005 其他版本 Visual Studio 2010Visual Studio 20082(共 2)对本文的评价是有帮助评价此主题 用 Visual C++ 创建在 64 位 Windows 操作系统中运行的应用程序时,应注意以下问题:在 64 位 Windows 操作系统中,int 和 long 是 32 位值。对于计划为 64 位平台编译的程序,应注意不要将指针赋给 32 位变量。在 64 位平台上,指针为 64 位,如果将该指针赋给 32 位变量,则应截断该指针值。在 64 位 Windows 操作系统中,siz 阅读全文
posted @ 2012-03-04 21:56 Lunaa 阅读(132) 评论(0) 推荐(0) 编辑
摘要:买车之后需要买保险,这是所有车主的共识,但具体需要哪些保险,却不是每一位车主都能搞清楚的。那么,让我们听听私家车保险方面的专家平安电话车险4008-000-000是怎样考虑车险的,专家的车险投保攻略将会对车主投保大有裨益。 车主明白车险有哪些种类及承保范围,便可根据自身情况来确定需要买哪些保险了。下面介绍几个主要车险险种及其投保攻略。 1.交强险,是强制保险必须购买,主要对交通事故中造成的人员伤亡、财产损失提供及时和基本的保障。 2.车辆损失险,对发生碰撞等意外事故造成保险车辆本身的损失,按合同规定赔偿。建议新车和新手购买,老司机可适当选购。 3.第三者责任险,是对交强险赔付不足的部分... 阅读全文
posted @ 2012-03-03 22:52 Lunaa 阅读(118) 评论(0) 推荐(0) 编辑
摘要:深入Mysql字符集设置纸口杯PHP9 Comments发表评论基本概念• 字符(Character)是指人类语言中最小的表义符号。例如’A’、’B’等;• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A’赋予数值0,给字符’B’赋予数值1,则0就是字符’A’的编码;• 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{’A’,’B’}时,{’A’=>0, ‘B’=>1}就是一个字符集;• 字符序(Collation)是指在 阅读全文
posted @ 2012-03-02 09:01 Lunaa 阅读(106) 评论(0) 推荐(0) 编辑