12 2012 档案
摘要:C/C++ 语言中表达式的求值 --裘宗燕 北京大学数学学院信息科学系本文基本内容发表于《编程高手》杂志 2004 年第 12 期 经常可以在一些讨论组里看到下面的提问:“谁知道下面 C 语句给 n 赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友发 email 给我,问为什么在某个 C++系统里,下面表达式打印出两个4,而不是 4 和 5: a = 4; cout << a++ << a; C++不是规定 << 操作左结合吗?是C++书上写错了,还是这个系统的实现有问题? 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个
阅读全文
摘要:先看看基本区别:i++ :先在i所在的表达式中使用i的当前值,后让i加1++i :让i先加1,然后在i所在的表达式中使用i的新值看一些视频教程里面写for循环的时候都是写 ++i 而不是 i++,上网搜索了一下,原来有效率问题++i相当于下列代码 i += 1; return i; i++相当于下列代码 j = i; i += 1; return j; 当然如果编译器会将这些差别都优化掉,那么效率就都差不多了。
阅读全文
摘要:2012年12月24日23:23:13 周一12:00 -- 中午才回来14:00 -- 上课,数据库16:00 -- 回寝室18:00 -- 给妹子送了苹果,聊了会天。21:00 -- 回寝室,给班上同学送平安夜礼物21:30 -- 看了会数据库 主键 外键23:30 --睡觉总结:圣诞前的平安夜,无所事事,一晚上都精神不好。2012年12月25日21:46:57 周二09:00 -- 起床10:00 -- 图书馆《现代操作系统》 输入输出 I/O软件原理 I/O好复杂的感觉看了下冒泡排序 12:00 -- 吃饭,出去晃悠了一圈13:30 -- 回寝室休息,上网搜了下C++的视频教程,不知道
阅读全文
摘要:先看看由VC6自动生成的Hello World程序代码: 1 // hello world.cpp : Defines the entry point for the console application.2 //34 #include "stdafx.h"56 int main(int argc, char* argv[])7 {8 printf("Hello World!\n");9 return 0;10 } 刚学C语言的时候,书上的Hello World程序的main函数也是带参的,当时老师告诉我们:这个你们先别管,以后会懂的。然后就轻轻带过了
阅读全文
摘要:2012年12月15日15:15:27 周六 09:00 --8点多起床,赖床一小会 10:00 -- 开电脑,看了会网页,写博客流水账系列说明,下载一个倒计时小软件TinyCountdown。 11:30 --图书馆 一个小时左右 《现代操作系统》 看了文件系统的文件介绍,记笔记。 文件的基础定义 一个小时左右 《C Primer Plus》 C标准I/O库,文件操作函数 main函数的参数 一个小时左右 数据结构 快速排序 没完全懂,递归依旧似懂非懂。 20:30 --网页设计作业 一晚上...
阅读全文
摘要:博客开了这么,还是没留下什么自己的思考,平常没有写博客的习惯,很多时候的只是没有这种把想法记下来的意识,想写点什么的时候又觉得无从下笔。 昨天在豆瓣上看到这个帖子,感觉LZ这种想法不错,开一帖把自己每天的学习情况发出来,不管有没人看,权当是对自己的监督吧。 所以就有了拿博客记录一下自己的学习情况,貌似有点水,反正我这种小菜鸟的博客也不会有太多访客(偶尔进来的大大们觉得此博太水的请口下留情)。就当是养成每天写一点东西的习惯吧,慢慢的内容就会充实起来的。有点东西发布出来,对自己的监督性也大一点,毕竟白底黑字在这放着,也会尽量做到不太丢人吧! 我把这个系列叫做流水账系列,每天记录一下自...
阅读全文
摘要:维基百科:写入时复制(Copy-on-write)是一个被使用在程式设计领域的最佳化策略。其基础的观念是,如果有多个呼叫者(callers)同时要求相同资源,他们会共同取得相同的指标指向相同的资源,直到某个呼叫者(caller)尝试修改资源时,系统才会真正复制一个副本(private copy)给该呼叫者,以避免被修改的资源被直接察觉到,这过程对其他的呼叫只都是通透的(transparently)。此作法主要的优点是如果呼叫者并没有修改该资源,就不会有副本(private copy)被建立。第一代Unix系统实现了一种傻瓜式的进程创建:当发出fork()系统调用时,内核原样复制父进程的整个地址
阅读全文
摘要:单指令流多数据流(Single Instruction Multiple Data, SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处理器中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元,例如Intel的MMX或SSE以及AMD的3D Now!技术。费林分类法(Flynn's Taxonomy),是一种高效能计算机的分类方式。1972年费林(Michael J. Flynn)根据资讯流(information stream)可分成指令(Instruction)和资料(Data)
阅读全文