11 2017 档案
摘要:1、ctags -R 有个问题,成员变量没有包含在里面。所以自动完成对象的成员时没有提示。解决办法:$ctags -R --fields=+iaS --extra=+q *–fields=[+|-]flags–fields指定tags的可用扩展域(extension fields),以包含到tags
阅读全文
摘要:1、安装: 2、生成tags文件: 3、在vim中设置tags的绝对目录,这样就可以在任何子目录使用了。 4、使用:将光标移动到名称上按 ctrl+] 进入定义该名称的地方。跳回使用: ctrl+t 5、查看当前文件路径及名称:在vim中按 :f 或者 ctrl+g
阅读全文
摘要:#include int main(int argc, char *argv[]) { int a[3]={1,2,3}; int (*pa)[3]; // *pa=a; //错误,因为pa没有被赋值,怎么取值,语法错误。 pa=&a; //正确,&a为指向数组的地址,和pa类型匹配 printf("*pa=%p\n",*pa); //正确,*pa含义为:对p...
阅读全文
摘要:Linux下的gdb和gcc默认输出的汇编都是AT&T格式的,但是它们都有方式来转换为Intel格式。 -masm=[intel|att] 选择intel或AT&T的汇编语法gcc -S -masm=intel test.cgdb则是设置环境变量set disassembly-flavor inte
阅读全文
摘要:1、变量名在编译阶段被编译器替换成存储该变量值的内存空间的首地址,简单说:变量名代表存储该变量的内存空间首地址。 例如:定义一个int型变量 int a=10; //int型变量的用4个连续的字节存储,变量名a代表第一个字节的地址。 double b=12.1; //double型变量用8个连续的字
阅读全文
摘要:数组名不能简单的认为是一个指针常量,这不符合c语言的一贯逻辑。 1、数组名的内涵是其指代实体是一种数据结构,这种数据结构就是数组。 2、编译器可以根据上下文环境,将数组名转换为指向该数组首元素的指针,注意这个指针的类型为该元素的类型。 例题:数组名指代一种数据结构:数组
阅读全文
摘要://char (*(*x[3])())[5];//x是什么类型的变量? // //分析C语言声明,关键是搞清楚这个变量是个什么东西(函数、指针、数组), //是函数那么剩下的就是他的参数和返回值, //是指针那剩下部分是说明他指向什么, //是数组剩下的部分就是说明数组的成员是什么类型。 //解析C
阅读全文
摘要:1、C语言中每个变量都有3个性质:存储期限、作用域、链接 1)存储期限:变量的存储期限决定了为变量预留的内存被释放的时间。共2种,自动存储期限(auto),静态存储期限(static),自动存储(auto)的变量在所属块被执行时获得内存单元,并在块终止时释放内存单元,自动的获得或释放内存,故名aut
阅读全文
摘要:首先,一些国外的研究成果: 一个用英语解析复杂声明的网站:http://cdecl.org 图表说明复杂声明(英):http://c-faq.com/decl/spiral.anderson.html 另一个举例说明(英):http://www.unixwiz.net/techtips/readin
阅读全文
摘要:1个字节在内存存储没有争议,当多个字节在内存中存储时,就有了不同的意见,目前,主要有2个方式: 小端:低字节存低地址,高字节存高地址。Little-Endian 大端:高字节存低地址,低字节存高地址。Big-Endian 看图: 小端字节序:低字节存于内存低地址;高字节存于内存高地址。如一个long
阅读全文

浙公网安备 33010602011771号