![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
进行中
这个作者很懒,什么都没留下…
展开
-
C中的指针和数组
C语言中很多时候指针和数组可以通用。代表的意思差不多,但是有些地方还是有些差别的。 1.数组名代表数组首元素的地址。例如int a[5] int *p = a; a代表数组首元素的地址 &a[0]数组首元素的地址 &a代表数组的首地址。虽然值和上面的一样,但是意义和上面的是不一样的 p指向这个数组,代表数组首元素的地址。与&p[0]一样。 附上测试程序,一目了然了。 #inclu原创 2013-03-19 19:09:29 · 482 阅读 · 0 评论 -
sizeof 和 strlen
大家对这个关键字都很熟悉,但是有时用起来还是有迷糊。 sizeof(a):用来计算a在内存所占字节数,当在计算字符串时包括字符串结束符“\n”,切记!!!! strlen(a):计算字符的长度,应该是有效,字符串时不包括结束符。 void func(char arg[10]) { sizeof(arg); } 此处的arg即当作一个指针就可以了。原创 2013-10-19 21:26:58 · 454 阅读 · 0 评论 -
一个static引发的血案
今天在调试 一个内核模块,一个文件要引用另外一个文件的接口。我就和通常一样,先在本文件用exetern外面引用接口,但是当我放在设备上调试时这个模块怎么都加载不起来。后来搞了半天才发现该接口定义时加了static,外部引用不了。 看似很简单的知识点,一疏忽就浪费了不少时间调试它。 。。。。。。原创 2013-10-11 12:27:43 · 549 阅读 · 0 评论 -
gcc 编译报错
昨晚编译代码,发现报莫名其妙的错误,一些框架定义的东西都不能用,说是没定义,例如: expected specifier-qualifier-list before u32 ,这里意思u32不是一个定义的数据类型。 然后不知所措,也在网上找了一些资料,例如: 1.头文件没有加#引用,导致出现 include 类似的情况会报错 2.有函数定义后面加了; 例如 void prinf(int原创 2015-08-11 09:02:05 · 1149 阅读 · 0 评论 -
C语言全局变量初始化、数据类型长度
今天在工作中遇到两个问题,记录下来: 1. 定义了一个全局变量,然后初始化,编译的时候编译不通过。如下: int a; a = 5; 编译的时候一直报错,且说下面的a没有定义类型,默认类似是int。 后面才发现全局变量不能再全局初始化,要初始化则在定义的时候初始化,如下: int a=5; 不能再全局初始化的原因是:全局初始化语句在开始运行的时候初始化,如果一个变量在全局有两次初始化原创 2015-10-11 22:54:39 · 569 阅读 · 0 评论