上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 在编程的过程中,对于引用的系统库头文件,经常需要去查看具体声明内容,而仅仅为我们的项目源码建立一个project并不能直接看到,这里有一个办法: source insight安装以后,在自定义的“workplace”目录中有一个BASE工程,这个工程是一个全局的工程,它的设置对所有工程都有效。所以我们只需要将所有的库头文件都添加至这个base工程中,并执行Project->Synchronize Files... OK,然后再建立我们的自己的工程,当我们引用库文件时,则可以直接跳到头文件中的声明处了! 阅读全文
posted @ 2013-07-07 16:31 z折腾 阅读(1751) 评论(0) 推荐(0) 编辑
摘要: 解压命令 tar -xzvf xxxx.tar.gz -x: 解打包或压缩功能; -z: 通过gzip的支持进行压缩/解压缩。文件名*.tar.gz -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来 -f:后面接要被处理的文件名压缩文件 tar -zcvf etc.tar.gz /etc -c:新建打包文件 阅读全文
posted @ 2013-07-07 16:17 z折腾 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 先上代码,改错#includeint main(){ char *str = "Hello"; str[0] = 'P'; printf("%s\n",str); return 0;}这里把char *str ="Hello";改为char str[]="Hello"即可;这是由于str指向的是一个常量字符串,常量是不准被修改的,所以程序运行到str[0]='P';这一句应该会出错; 阅读全文
posted @ 2013-07-07 14:01 z折腾 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-07-06 00:02 z折腾 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。 下面以函数返回局部变量的指针举几个典型的例子来说明:1:[cpp]view plaincopy#includechar*returnStr(){char* 阅读全文
posted @ 2013-07-05 23:46 z折腾 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 上例子常见的三种数组作为传入参数#includefloat average1(float a[5]){ int i; float sum=0; for(i=0;i<5;i++) { sum+=a[i]; } printf("1:%d %f\n",sizeof(a),sum);}float average2(float a[]){ int i; float sum=0; for(i=0;i<5;i++) { sum+=a[i]; } printf("2:%d %f\n",sizeof(a),sum... 阅读全文
posted @ 2013-07-05 23:32 z折腾 阅读(1407) 评论(0) 推荐(0) 编辑
摘要: addrinfo结构体的定义如下:struct addrinfo{intai_flags;/*customize behavior*/intai_family;/*address family*/intai_socktype;/*socket type*/intai_protocol;/*protocol*/socklen_t ai_addrlen;/*lengthinbytes of address*/struct sockaddr*ai_addr;/*address*/char*ai_canonname;/*canonical name of host*/struct addrinfo*a 阅读全文
posted @ 2013-07-05 12:37 z折腾 阅读(569) 评论(0) 推荐(0) 编辑
摘要: #include#include typedef struct node { int data; struct node *next; }Node; //创建链表 Node *CreateList(void) { int val,i,n; Node *head,*p,*q; head=NULL; printf("请输入您要建立的链表长度:\n"); scanf("%d",&n); printf("请输入您要输入的数据:\n"); for(i=0;idata=val; if(head==NULL... 阅读全文
posted @ 2013-07-05 12:01 z折腾 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1 int main(int argc, char** argv)2 {3 int a[5] = {1,2,3,4,5};4 int* ptr = (int*)(&a + 1);5 printf("%d,%d\n", *(a+1), *(ptr-1));6 return 0;7 }这道题在很多所谓经典C语言面试题里是常见的不能再常见,你知道输出结果吗?答案是:2,5但是仍有许多人不能答对,也包括当初的我。这道题简简单单,但是考察了不少于如下内容:数组指针、数组首地址概念、数组指针和数组首地址和数组首元素地址之间的关系,指针运算规则,指针类型,int型长度,指针长.. 阅读全文
posted @ 2013-07-05 10:54 z折腾 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 先让指针q指向 数组空间data;然后传入指针q的地址给;put16函数;写入16bit位uint8_t data[1012], *q;q = data;put16(&q, 0xe000 | service->pcr_pid);利用二级指针写入16个bitstatic inline void put16(uint8_t **q_ptr, int val){ uint8_t *q; q = *q_ptr; *q++ = val >> 8; *q++ = val; *q_ptr = q;}此时q_ptr指向的是出入参数q的内存地址(即指针的指针)*q_ptr相当于出入.. 阅读全文
posted @ 2013-07-05 10:09 z折腾 阅读(300) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页