随笔分类 -  C/C++

C/C++
“整型变量仅仅意味着一个整数?”
摘要:当我们还是一个新手,看整型就是整数; 当我们成为高手,看什么都是整型。 整型,在所有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)
“函数add编译生成的符号就是add?”
摘要: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 阅读(352) 评论(0) 推荐(0)
[转]C语言中的联合体union
摘要:转自:http://blogold.chinaunix.net/u2/84450/showart_1829958.html 在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。首先看一段代码:union myun{ struct { int x; int y; int z; }u; int k;}a;int main(){ a.u.x =4; a.u.y =5; a.u.z =6; a.k = 0; printf("%d %d % 阅读全文
posted @ 2011-03-27 16:39 c++_thinker 阅读(678) 评论(0) 推荐(0)