摘要:0. 字节序的参考基准是人的理解。比如0x1122,根据人的理解,11是高字节,22是低字节。1. 无论如何,计算机的内存地址编号是从低到高,并且以字节为单位。cpu的指针也是从低到高移动。2. cpu指针移动时,先读的如果是低字节,就是little endian。反之为big endian。3. 如果little endian 的机器与big endian的机器通信,在没有转换字节序的情况下,会出现问题。问题所在:根据1和2条可以推知,little机器认为先读到的是低字节,big认为先读到的是高字节。于是little先发送低字节,big接受时认为是高字节。4. 主机字节序与CPU有关。Int
阅读全文
摘要:今天我试着思考一下【参数传递】。理论基础 严格上讲,参数传递只有一种方式——值传递(by value)。那么广为流传的参数的两种传递方式:值传递(by value)和地址传递(by address)是怎么一回事呢? 这个问题或许连笨蛋都可以回答,因为仅仅从文字的语义上就可以找到答案,那就是:地址也是一种值。 回答如此简单,简单到足以让人们误以为理解其含义,止步于更深度...
阅读全文
摘要:下面一段话:纯是扯淡。。那时候刚从Java跳到C++,对C++的一切还不是很熟悉。现在的理解是:用宏定义来替代namespace,是为了兼容不同的编译器。如果没有的话,不支持namespace的编译器就会报错,主要在一些跨平台的类库或者应用程序中出现。刚才在研究STL的底层代码。突然发现,有条语句很诡异,像是故意躲在角落里,着实吓了我一跳。[代码]F12转到定义处,才发现:[代码]于是哥生气了。直...
阅读全文
摘要:学了1年Java了,突然又要转向C++,悲叹之余还是要复习一下原本就不是很熟悉的C++语法。代码:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1char*cs="hello";2charca[]="hello";3char*pca[]={"hw...
阅读全文