2011年4月8日
摘要: 当我们还是一个新手,看整型就是整数; 当我们成为高手,看什么都是整型。 整型,在所有C/C++基本数据类型中最富有艺术魅力和奇幻色彩。 我们从某著名论坛的一篇帖子开始一窥整型的奥妙。 问:Vxworks操作系统启动一个任务的函数是taskSpawn(char* name, int priority, int options, int stacksize, FUNCPTR function, int arg1,.. , int arg10),它只接受整型参数,我该怎么办才能给它传一个结构体(在32位PowerPC平台下)? 答:可以传入结构体的指针,在32位PowerPC平台下,指针本质上就是一 阅读全文
posted @ 2011-04-08 23:19 c++_thinker 阅读(452) 评论(0) 推荐(0)
摘要: int add(int x,int y){return x + y;}float add(float x,float y){return x + y;}即便是在C语言中,add函数被多数C编译器编译后在符号库中的名字也不是add,而是_add。而在C++编译器中,int add(int x,int y)会编译成类似_add_int_int这样的名字(称为“mangled name”),float add(float x,float y)则被编译成_add_float _float,mangled name包含了函数名、函数参数数量及类型信息,C++依靠这种机制来实现函数重载。 所以,在C++中 阅读全文
posted @ 2011-04-08 23:09 c++_thinker 阅读(774) 评论(0) 推荐(0)
摘要: 许多程序员对数组名和指针的区别不甚明了,他们认为数组名就是指针,而实际上数组名和指针有很大区别,在使用时要进行正确区分,其区分规则如下: 规则1 数组名指代一种数据结构,这种数据结构就是数组; 例如:char str[10];char *pStr = str;cout << sizeof(str) << endl;cout << sizeof(pStr) << endl; 输出结果为: 104 这说明数组名str指代数据结构char[10]。 规则2 数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;c 阅读全文
posted @ 2011-04-08 23:02 c++_thinker 阅读(351) 评论(0) 推荐(0)