- 博客(8)
- 收藏
- 关注
原创 vim常用操作整理
一.插入篇光标前插入: a 行首插入: A 光标后插入: i 行尾插入: I 光标下一行新起一行并进入Insert模式: o 光标上一行新起一行并Insert模式: O 二.光标篇使用hjkl来进行光标移动,因为使用箭头会使手指移出键盘区。 向下翻页: ctrl+f 向上翻页: ctrl+b 光标定位到行末: $ 光标定位到行首: ^ 光标定位到单词首字母: b...
2018-11-25 22:20:44
213
原创 分析函数指针及其两个主要用途
0.基本的函数指针的声明与初始化 首先我们来声明一个函数。int Max_Int(int a, int b){ return (a>b)?a:b;} 把函数名替换成指针表达式是创建指向函数指针最简单的方式:int (*pFun)(int a, int b); //声明函数指针,此时函数指针没有指向任何函数这时,我们就已经完成了一个最简单的函数指针声明,其意义是:生命...
2018-05-22 22:02:27
15425
8
原创 浅谈const
0.概述在C语言中,const是一个限定符。主要作用是使限定的变量只读,有些教课书把它翻译成“常量”,而我个人更愿意把它翻译成“只读变量”。const int a = 10; //声明 int 型变量a为只读。int const b = 10; //同上面声明方式完全一样,习惯上更倾向于第一种写法注意:const只读变量必须在声明的同时进行初始化,因为此刻如果不初始化,在后面将无法...
2018-05-17 21:31:47
193
原创 关于C语言全局变量的一些问题
1、我们的代码在编译之后,会生成三个段:text段,data段,bss段。text段:存放我们的代码,也就是程序编译后的机器码。data段:存放经过非0初始化的全局变量。bss段:存放未初始化的全局变量和初始化为0的全局变量。这一段会由编译器自动清0。这也是C语言的全局变量若未初始化,其缺省值为0的原因。同时作为对比,我们知道,局部变量没有初始化,其值是不定的,因为布局变量是存...
2018-04-26 12:39:02
715
原创 为arm交叉编译工具链生成符号链接
ln arm-none-linux-gnueabi-gcc -s arm-linux-gccln arm-none-linux-gnueabi-ld -s arm-linux-ldln arm-none-linux-gnueabi-objcopy -s arm-linux-objcopyln arm-none-linux-gnueabi-objdump -s arm-linux-objdu...
2018-04-26 09:54:05
932
原创 关于程序预编译-编译-链接过程分析
0、前言 之前自己在学习C语言时,都是在VS ,KEIL这类windows下的IDE进行的。所以之前虽然也知道程序由代码转为可执行文件的过程,但是一直没有深刻的理解。最近在linux系统中进行了几次编程,只能使用toolchain进行编译,也因此对程序预编译-编译-链接过程终于有了一些概念。所以说IDE虽然好,但是会让人丧失很多深入学习的机会啊!好了,废话不说,下面开始正题。1、预处理(Pr...
2018-04-22 21:45:10
633
原创 C语言中一位数组,二维数组,变长数组的定义
明确概念:C语言不允许单独声明未定义长度的数组。C99中,一位数组的声明(同时赋值)时可以不写数组长度。如 int myarray[]={1,2,3,4,5}; 的原因是,编译器会根据赋值自动给出数组长度。但是,二维数组的声明时必须写上边界。如下的写法unsigned int grades[][] = { {80,81,82,83,8...
2018-04-20 17:59:41
2373
原创 关于makefile error:makefile:2: *** missing separator. Stop.
今天学习了makefile,尝试编写一个非常简单的makefile,可是总是报错。命令行前是tab没错,编码方式utf-8没错。输入命令行时,从打出tab开始,就开始报红。。 后来发现,出现此错误的原因是vim配置文件 .vimrc中出现了这个语句expandtab会自动将tab转换为空格,这样,虽然你按下了tab,但是vim还是会把它转换成相应长度的空格输入,导致了mak...
2018-04-20 16:28:34
4376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人