register

第一次使用vim遇到的问题及常用方法

醉酒当歌 提交于 2020-03-02 17:50:42
笔者初学linux和python,vim又是linux下最优秀的编辑工具,当然要学习一下下了~~~ 首先看遇到的问题,我从终端输入:vi进入vi的欢迎界面,如图: 然后,笔者傻傻的看到了上面的help,就真想help一下vim的使用方式,于是键入:help,问题出现了: 终端左下角会提示E353:Nothing in register 拙计,度娘之(原谅谷歌老是间歇性失常),原来这不是什么问题,而是自己操作错误,这时候只要按【i】或者【a】进入vi的插入模式就可以进行编辑了。。。 最后再给和我一样小白的linux新手普及几种vi的基础概念: vi的工作模式: 1. 命令行模式:用光标在字符之间来回移动,进行删除、复制、移动字符等操作,按【i】或【a】进入插入模式,按【:】(冒号)进入末行模式 2. 插入模式:输入你要编辑的内容,按【ESC】返回命令行模式,按【:】(冒号)进入末行模式 3. 末行模式:保存文输入保存命令件或退出vi,输入:【wq】存盘并退出vi,输入【q!】不保存强制退出vi,输入【w:filename】,将文件保存为制定的文件名 来源: oschina 链接: https://my.oschina.net/u/1239957/blog/148194

C++ Primer Plus(九)——内存模型和名称空间

你说的曾经没有我的故事 提交于 2020-03-02 03:24:14
程序分成三部分: 头文件:包含结构声明和使用这些结构的函数的原型,使用#define或const定义的符号常量,类声明,模板声明,内联函数 只需将源代码文件加入项目中,而不用加入头文件;不要使用#include来包含源代码文件,这样将导致多重声明。 同一个文件中只能将同一个头文件包含一次,可以使用以下的防护方案。基于预处理器编译命令#ifndef,可以在没有使用#define定义某个特定名称时,处理#ifndef和#endif之间的语句。但这种方法并不能防止编译器将文件包含两次,而只是让他忽略除第一次外的所有内容。 源代码文件:包含与结构相关的函数的代码 源代码文件:包含调用与结构相关的函数的代码 C++标准允许每个编译器以他认为合适的方式实现名称修饰,因此不同编译器创建的对象代码文件很可能无法正确的连接。请确保所有对象文件都是由同一个编译器生成的。 C++的存储连续性:自动存储连续性、静态存储连续性、线程存储连续性、动态存储连续性 在C++11中,关键字auto用于自动类型判断,但在C语言和以前的C++版本中,auto的含义截然不同,它被用于显式指出变量为自动存储。在C++11中,这种用法不再合法。 在C++11前,关键字register用于建议编译器使用CPU寄存器来存储自动变量。在C++11中,关键字register这种提示作用失去,只用于显式指出变量是自动的。

C语言中auto,register,static,const,volatile的区别

大憨熊 提交于 2019-12-05 21:23:35
1)auto   这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。 (2)register   这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。 (3)static   常见的两种用途:     1>统计函数被调用的次数;     2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存储类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,以减少建立或者初始化这些变量的开销.   详细说明:     1>、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与栈变量和堆变量的区别。     2>、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。     3>当static用来修饰全局变量时,它就改变了全局变量的作用域,使其不能被别的程序extern,限制在了当前文件里,但是没有改变其存放位置,还是在全局静态储存区。   使用注意:     1>若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;   

C Primer Plus 第12章 12.2 存储类说明符

可紊 提交于 2019-12-04 23:41:18
C语言中有5个关于存储类说明符的关键字,它们是auto、register、static、extern以及typedef。关键字typedef与内存存储无关,由于语法原因被归入此类。特别地,不可以在一个声明中使用一个以上存储类说明符,这意味着不能将其他任一存储类说明符作为typedef的一部分。 说明符auto表明一个变量具有自动存储时期。该说明符只能用在具有代码块作用域的变量声明中,而这样的变量已经拥有自动存储时期,因此它主要用来明确指出意图,使程序更易读。 说明符register也只能用于具有代码块作用域的变量。它将一个变量归入寄存器存储类,这相当于请求将该 变量存储在一个寄存器内,以更快地存取。它的使用也使您不能获得变量的地址。 说明符static在用于具有代码块作用域的变量的声明时,使该变量具有静态存储时期,从而得以在程序运行期间(即使在包含该变量的代码块并没有运行时)存在并保留其值。变量仍具有代码块作用域和空链接。static在用于具有文件作用域的变量的声明时,表明该变量具有内部链接。 说明符extern表明您在声明一个已经在别处定义了的变量。如果包含extern的声明具有文件作用域,所指向的变量必然具有外部链接。如果包含extern的声明具有代码块作用域,所指向的变量可能具有外部链接也可能具有内部链接,这取决于该变量的定义声明。 下面给出了一个使用全部5种存储类的小程序