- 博客(37)
- 资源 (1)
- 收藏
- 关注
转载 英语中常见的123个中国习语
1.爱屋及乌 Love me, love my dog. 2.百闻不如一见 (眼见为实 )Seeing is believing. 3.比上不足比下有余 worse off than some, better off than many; to fall short of the best, but be better than the worst. 4.笨鸟先飞 A s
2010-04-07 15:04:00
1539
转载 Regression testing、Smoke Test、Sanity testing
Regression testing is verifing that previously passed tests are still OK after any change to the software or the environment, usually to verify that a change in one area doesnt affect other or un
2010-04-03 15:43:00
1321
转载 RVO:Return value optimization
Return value optimizationFrom Wikipedia, the free encyclopediaJump to: navigation, searchReturn value optimization, or simply RVO, is a C++-specific compiler optimization techniq
2010-03-05 17:15:00
1069
转载 C语言中双字符组(digraph)和三字符组(trigraph)的使用注意事项
某些标点符号,在一些键盘上是无法输入的,所以C提供了这样的替换方式。其中双字符记号有六个,也成为双字符组(digraph)::> ]%> }%: #%:%: ##如果上述任何字符组出现在字符常量或字符串字面值中,则不会被解释成双字符组;除此之外,它们一律被解释成双字符组,作用和相应的单一字符记号完全一样。比方说,下列的两个程序代码片段完全等价的,
2010-03-05 16:50:00
1945
转载 优先级反转
优先级翻转发生的条件: 1、首先发生翻转需要有三个任务,它们的优先级分别是高、中、低。 2、低优先级和高优先级都需要take同一个信号量。 优先级翻转的过程: 1、低优先级先take到信号量。 2、低优先级被中优先级任务抢占。(然后低优先级任务就只能等中优先级任务执行完,再继续执行之后,才能释放信号量了)
2010-01-29 13:30:00
982
转载 伪共享false sharing
1. 背景介绍 首先简单说一下计算机中处理器-内存体系结构。由于CPU速度远大于内存访问速度,现代CPU设计中都引入了缓存(cache)作为CPU和内存两者之间 交流的缓冲中介。缓存的速度也介于两者之间。缓存中存放了最经常被访问的内存数据,CPU在很大程度上只需要访问高速缓存,大大提高了系统性能。系统对缓 存进行读写的单位被称作缓存行(cache li
2010-01-28 22:35:00
1079
原创 零拷贝技术
零拷贝(zero-copy)基本思想是:数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷贝用到的最主要技术是DMA数据传输技术和内存区域映射技术。如图1所示,传统的网络数据报处理,需要经过网络设备到操作系统内存空间,系统内存空间到用户应用程序空间这两次拷贝,同时还需要经历用户向系统发出的系统调用。而零拷贝
2010-01-16 22:51:00
932
原创 c语言模拟perl python中的数组负数索引
int main(){ int a[] = {1,2,3,4,5}; int i; int * p = a; for (p = a + 4, i = 0; i < 5; i++) { printf("%d ",p[-i]); } return 0;}
2010-01-16 16:53:00
1356
原创 回调函数
回调函数这个东西使用得比较多,其实所谓的回调函数就是函数指针,但在面向对象编程中,往往我们会使用他们达到很巧的目的,比如说类的封装中;或者用得更多的是实现动态绑定;呵呵这不是C++中传说的多态吗.先来个简单的介绍函数指针:#includetypedef int(*callback)(int);using namespace std;class X{ protected:
2009-08-31 17:17:00
801
转载 sizeof 用法总结
double* (*a)[3][6]; cout<<sizeof(a)<<endl; // 4 cout<<sizeof(*a)<<endl; // 72 cout<<sizeof(**a)<<endl; // 24 cout<<sizeof(***a)<<endl; // 4 cout<<sizeof
2009-08-31 13:17:00
892
转载 ACM学习建议
一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来. 1.最短路(Floyd、Dijstra,Be
2009-08-31 13:03:00
821
转载 __FILE__ __LINE__
__FILE__ 包含当前程序文件名的字符串__LINE__ 表示当前行号的整数__DATE__ 包含当前日期的字符串__STDC__ 如果编译器遵循ANSI C标准,它就是个非零值__TIME__ 包含当前时间的字符串例如:输出当前程序文件名的程序:#include int main(void){ printf("%s",__FILE__); return 0;}
2009-08-31 12:49:00
1076
1
转载 可重入函数&可重入内核
可重入函数这一概念早有接触,但一直未有系统的理解,最近阅读《APUE》信号一章时,其中讲解很到位,故总结如下。信号作为一种软中断,能够被进程给捕获,因而也就中断进程的正常执行,转而去执行信号处理程序,最后再返回到原进程继续正常执行。然而,当进程正在执行malloc()动态内存分配时,信号产生从而转入到信号处理程序,但当信号处理程序中也用到了malloc()函数时,问题就出来了?因为malloc
2009-08-30 09:59:00
2473
转载 C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不
2009-08-22 23:05:00
727
转载 const
char greeting[] = "Hello";char *p = greeting; // non-const pointer, // non-const dataconst char *p = greeting; // non-const
2009-08-20 00:18:00
875
转载 变长参数表
#include #include void minprintf(char * fmt, ...){ va_list ap; char *p, *sval; int ival; double dval; va_start(ap,fmt); for(p=fmt;*p;p++) { if(*p !=
2009-08-19 22:45:00
791
转载 位字段
#include struct { unsigned char is_keyword :1; unsigned char is_extern :1; unsigned char is_static :1; unsigned char is_a :1; unsigned char is_b :1; unsigned char i
2009-08-19 22:18:00
756
转载 String 类与 StringBuffer 类
String 是不可以变的字符串. StringBuffer 是可变的字符串. 对StringBuffer进行操作,是在原来的对象之上进行改变. 而对String进行操作,是创建新的对象 string是不可变的。。。比如这个: test(x000001).replace(“j”,"i");内部分是这样的: Str
2009-08-19 11:03:00
726
转载 从控制台输入
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package isodd;import java.io.*;class Input { static InputStreamReader in; static B
2009-08-14 23:48:00
825
原创 数组与指针
指针是变量,可以作为赋值语句的左值,可以进行自增自减运算。数组名不是变量。 char amessage[]="ABC"; //定义一个数组char * pmessage = "ABC"; //定义一个指针 _____amessage: | ABC/0 | ___
2009-08-14 19:50:00
670
原创 #define 引发的问题
1。#include #define square(x) x*xint main(){ int v; scanf("%d",&v); printf("%d/n",square(v+1)); } 输入5 输出却是11预编译后的文件:int main(){ int v; scanf("%d",&v)
2009-08-14 19:02:00
528
转载 C语言中用qsort()快速排序
C语言中排序的算法有很多种,系统也提供了一个函数qsort()可以实现快速排序。原型如下: void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));
2009-08-14 17:32:00
593
转载 关于time_t,clock_t ,time(),clock(),CLK_TCK, CLOCKS_PER_SEC 的使用
ISO/IEC 9899:1999 标准中有一个宏: CLOCKS_PER_SEC tc2 中的 time.h:没有 CLOCKS_PER_SEC,有一个 CLK_TCK #define CLK_TCK 18.
2009-08-14 10:43:00
3014
原创 函数指针
#include #include void fun() { printf("Here/n"); } int main() { void (*f)()=fun; // 或者 void (* f)()=&fun; (*f)(); exit(0); }
2009-08-11 13:24:00
357
原创 字符串与整数之间的转换
#include #include using namespace std;int main(){ string s="12345"; long int i=strtol(s.c_str(),(char **)NULL, 10);// long int strtol(const char *nptr, char **endptr, int base); 字符串
2009-08-11 10:38:00
383
原创 getline() vector
#include#include#includeusing namespace std;int main(){ int NUM; cout<<"input vetcor size NUM="; cin>>NUM ; //getchar(); fflush(stdin); //输入NUM以后缓冲区中有个一个换行,而getline函数不忽略换行,如果不清空,第一
2009-08-11 00:43:00
824
原创 string类的成员函数c_str()
#include #include using namespace std;int main(){ char * a ="Hello world!/n"; string c=a; string b; cin >> b; const char *d = b.c_str(); //注意是const
2009-08-11 00:08:00
474
原创 十进制转2-16进制
#include #include #include #include using namespace std;int main(){char digit[16] = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F};int num;cout << "待转换的数据:" ;cin
2009-08-10 23:29:00
468
转载 网线
常见的网线有两种,一种是直通线,也叫直连线或正线,另一种是交叉线,也叫反线。那么什么情况下用正线什么时候用反线呢?今天我们就为大家总结一下,以后在实际工作中遇到相应问题可以把本篇文章拿出来对照参考。 1.PC机与PC机之间,路由器与路由器之间使用交叉线进行连接。 2.PC机与路由器连接使用交叉线。 3.PC机与交换机,路由器与交换机之间使用直连线连接。 4.交换机与交换机之间情况比较特殊,
2009-08-08 15:02:00
502
原创 产生随机数
srand(time(NULL));//产生随机数种子rand() % 100 +1;//产生一个1~100以内的随机数.包含头文件是 #include 宏定义 RAND_MAX
2009-08-08 10:30:00
455
转载 Shell Sort 希尔排序
希尔排序(Shell Sort)又叫做缩小增量排序(diminishing increment sort),是一种很优秀的排序法,算法本身不难理解,也很容易实现,而且它的速度很快。插入排序(Insertion Sort)的一个重要的特点是,如果原始数据的大部分元素已经排序,那么插入排序的速度很快(因为需要移动的元素很少)。从这个事实我们可以想到,如果原始数据只有很少元素,那么排序的速度也很快。
2009-08-08 10:19:00
2311
转载 double 和 long double
double和long double都是ANSI C标准的浮点数。但ANSI C并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或更多。一般来说long double的精度要高于double, 至少相等,就像int和long int一样。但同一平台也可能不一样,比如MS自己的C/C++/VC++就不一样。好像以前16位的VC+
2009-08-08 10:10:00
2140
原创 C语言变量名
A N S I标准规定,标识符可以为任意长度,但外部名必须至少能由前6个字符唯一地区分,并且不区分大小写。这里外部名指的是在链接过程中所涉及的标识符,其中包括文件间共享的函数名和全局变量名。 A N S I标准还规定内部名必须至少能由前3 1个字符唯一地区分。内部名指的是仅出现于定义该标识符的文件中的那些标识符。C语言中的字母是有大小写区别的,因此count Count COUNT是三个不同的
2009-08-08 09:59:00
3175
转载 Timeline of programming languages
Predecessor(s)YearNameChief developer, CompanyPre 1950*<a class="ilnk" onclick="function onclick(){assignParam(navinfo,method|4+getLinkTextForCookie(this));}" h
2009-08-06 10:19:00
1046
转载 如何优化C语言代码
[转帖]如何优化C语言代码 作者 huchengxtu 日期 2009-8-1 12:10:001、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执
2009-08-02 14:59:00
460
转载 一个老电子工程师对新工程师的挖心话
诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强! [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,
2009-08-02 14:24:00
1342
转载 程序员的八个级别
在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商
2009-08-02 14:18:00
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人