————————————————————————————————————————————————
——————————————————— 非代码部分 —————————————————————
————————————————————————————————————————————————
1. 对于有些用Secure CRT,在windows下面粘贴过来的代码,可以用Visual(在Vim下面按'v'),然后选中需要修改的代码,按"=",就可以使其对齐了。
2. Vim由7.1升级成7.2, 导致Vim中backspace键失效,所以解决的办法就是在vimrc文件中加入如下代码:
set backspace=indent,eol,start
如果还不行的话,可能还需要
set nocompatible
3. 389,424s/0x\(..\)/0x\1\,/gc 一个vi中给类似0x00后加一个','的vi命令。通过这个命令,对正则表达式有了些了解
389,424是行数,s是命令(swap),0x是字符串开头,\(..\)是匹配任意两个字符,\1代表搜索字符串中的某段括住的表达式,gc是替换并询问。期间试过389,424s/0x\(..\)/0x\(..\)\,/gc这样写,发现字符串都被替换为0x(..)这样的,所以要用\1来得到之前表达式的结果,还试过389,424s/0x\(*\)/0x\1\,/gc这样写,因为'*'是没有字符限制的匹配,所以这种替换都是在行尾加','。
4. 在使用vim的命令工具时,有时会提示错误,例如E486: Pattern not found: 0x\(*\) ,这是可以使用:messages或者:echo errmsg来查看错误编号,并可以使用:help E486来查看错误信息。
5. 文本文件数据导入Excel分列问题,复制到excel后用分列,菜单栏,数据,分列,分隔符号,下一步,勾上“逗号”前的钩,完成。
6. 字符串类似10-1-2,输入单元格后会自动更改回日期模式2010-1-2,有两种方法:第一是在将10-1-2改为‘10-1-2, 在输入字符串前加入单引号’,第二种方法是关闭excel的自动修正功能。
7.samba与windows共享,而后用sourceinsight打开。但问题在于:每次在sourceinsight里面做修改,而后切换到另一个文件的时后都会出现“...has been changed outside of the editor. Do you want toreloadthe file?" 必须将sourceinsight升级到3.50.0051或以上版本即可。
8. 删除IPC连接:
命令一: net use 查看网络连接情况
状态 本地 远程 网络
-------------------------------------------------------------------------------
OK \\172.17.51.81\xxx Microsoft Windows Network
命令二: net use\\172.17.51.81\xxx /del 删除IPC连接
————————————————————————————————————————————————
——————————————————— 代码部分 —————————————————————
————————————————————————————————————————————————
1.Debug调试宏
2.调用函数宏
3.变量定义
4.变更数组元素个数后,可用sizeof()除法得到具体个数
5.取得形如AVSW-video-mute中个别单词
6.代码规范化:
7.文件操作
8.一个int型数据由几个宏'|'(或)成,例如
9.引用外部变量数组,必须制定大小
例如: apl_services[2][MAX_SERVICES];
否则就提示错误:invalid use of array with unspecified bounds
10.使用system()函数执行系统命令,参数为系统命令字符串
11.大小写字符转换函数
12.有用的微操作
13. 按任意键退出
14. 计算出结构体里成员的相对地址偏移量
15. Make 3.81版本中,对.o文件有隐含规则编译,导致如果使用*.o表示的所有.o文件都会去寻找相应的.c文件编译,,可用.d文件代替
16. IIC读取/写入数据,长度限制为4 byte(总线长度32 bit -> 4 byte),
17. 字符串操作时,对临时字符串变量一定要初始化(memset 0)。
18. long int strtol(const char *nptr, char **endptr, int base)
strtol()会将nptr指向的字符串,根据参数base,按权转化为long int, 然后返回这个值。
参数base的范围为2~36,和0;它决定了字符串以被转换为整数的权值。
可以被转换的合法字符依据base而定,举例来说,当base为2时,合法字符为‘0’,‘1’;base为8时,合法字符为 ‘0’,‘1’,……‘7’;base为10时,合法字符为‘0’,‘1’,……‘9’;base 为16时,合法字符为‘0’,‘1’,……‘9’,‘a’,……‘f’;base为24时,合法字符为‘0’,……‘9’,‘a’,……‘n’,base 为36时,合法字符为‘0’,……‘9’,‘a’,……‘z’;等等。其中,不区分大小写,比如,‘A’和‘a’会都会被转化为10。
当字符合法时,‘0’,……‘9’依次被转换为十进制的0~9,‘a’,……‘z’一次北转换为十进制的10~35。
strtol()函数检测到第一个非法字符时,立即停止检测,其后的所有字符都会被当作非法字符处理。合法字符串会被转换为long int, 作为函数的返回值。非法字符串,即从第一个非法字符的地址,被赋给*endptr。**endptr是个双重指针,即指针的指针。strtol()函数就是通过它改变*endptr的值,即把第一个非法字符的地址传给endptr。
多数情况下,endptr设置为NULL, 即不返回非法字符串。
19.解释例如mov ax,100H 这样一条指令的cpu, os, memory等都完成了什么样的工指令执行步骤:
(1)fetch (取指令)
(2)decode (解码)
(3)execute (执行)
(4)memery (读写内存)
(5)write back (回写寄存器)
(6)PC update& (更新program counter)
细说如下:
mov ax, 100h
被编译器转化成低级机器指令序列为: 66 b8 00 01 (32 位操作系统下)
1)fetch 取指
opcode = *pc;
从 PC 当前指向的内存处取第1个字节。然后,判断这 byte 是指令的 opcode 码,还是 prefix encode
在这个例子中,第1 byts 是 66,也就是说:这是一个prefix。 那么下一个 byte 就是 opcode 的 encode
读取 第 2 个 byte,判断这个 opcode 是什么操作,这是一个 mov instruction 操作码。
那么,接下来的两个 bytes 就是 立即数。将它装入 ax 中;
newPC = newPC + 4; 这是新的 PC 值。
2)decode 解码
解析 66 这个字节,确定是 16 位 operand size
解析 b8 这个字节,确定是 mov ax,imm 操作,
解析 00 01, 确定是 immediate
3)excute 执行
在 CPU ALU部件执行 temp = 100h 操作
4)memory 写内存
这里已经免了
5)write back 写寄存器
ax = temp; 写 ax 寄存器
6)update PC 更新PC (pc counter)
PC = newPC
newPC = nextPC
20.下面的程序会输出什么?
参考答案:该项程序输出如下所示, 0 12 1095237632 原因是:浮点数是4个字节,12.5f 转成二进制是:01000001010010000000000000000000,十六进制是:0x41480000,十进制是:1095237632。所以,第二和第三个输出相信大家也知道是为什么了。而对于第一个,为什么会输出0,我们需要了解一下float和double 的内存布局,如下:
float: 1位符号位(s)、8位指数(e),23位尾数(m,共32位)
double: 1位符号位(s)、11位指数(e),52位尾数(m,共64位)
然后,我们还需要了解一下printf由于类型不匹配,所以,会把float直接转成double,注意,12.5的float和double的内存二进制完全不一样。别忘了在x86芯片下使用是的反字节序,高位字节和低位字位要反过来。所以:
float版:0x41480000 (在内存中是:00 00 48 41)
double版:0x4029000000000000 (在内存中是:00 00 00 00 00 00 29 40)
而我们的%d要求是一个4字节的int,对于double的内存布局,我们可以看到前四个字节是00,所以输出自然是0了。 这个示例向我们说明printf并不是类型安全的,这就是为什么C++要引如cout的原因了。
21. printf 返回值是所需打印字符的个数
22. 短路求值:对于(条件1 && 条件2),如果“条件1”是false,那“条件2”的表达式会被忽略了。对于(条件1 || 条件2),如果“条件1”为true,而“条件2”的表达式则被忽略了。
23. 下面的C程序是合法的吗?如果是,那么输出是什么?
参考答案:本例是合法的,输出如下:
Hello! how is this? super That is C !
本例主要展示了一种另类的用法。下面的两种用法是相同的:
"hello"[2] 2["hello"]
如果你知道:a[i] 其实就是 *(a+i)也就是 *(i+a),所以如果写成 i[a] 应该也不难理解了。
24. #define PrintInt(expr) printf("%s : %d\n",#expr,(expr)) 名字和值的输出表达式
25. 位操作,优先级要比加法要低
26. sizeof操作符返回的是一个unsigned int类型
27. continue的含义是不执行循环体之后语义,而直接到循环点
28. 外部变量enviorn提供的访问环境变量的方式与main()函数中的argv提供的访问命令行参数的方式是一样的。区别在于你必须自己声明environ变量。虽然环境变量由POSIX标准化了,但是任何标准化过的头文件都没有专门声明environ,这似乎是从过去的习惯延续过来的。
29. Shell快捷键:
Ctrl-A 相当于HOME键,用于将光标定位到本行最前面
Ctrl-E 相当于End键,即将光标移动到本行末尾
Ctrl-B 相当于左箭头键,用于将光标向左移动一格
Ctrl-F 相当于右箭头键,用于将光标向右移动一格
Ctrl-D 相当于Del键,即删除光标所在处的字符
Ctrl-K 用于删除从光标处开始到结尾处的所有字符
Ctrl-L 清屏,相当于clear命令
Ctrl-R 进入历史命令查找状态,然后你输入几个关键字符,就可以找到你使用过的命令
Ctrl-U 用于删除从光标开始到行首的所有字符。一般在密码或命令输入错误时常用
Ctrl-H 删除光标左侧的一个字符
Ctrl-W 用于删除当前光标左侧的一个单词
Ctrl-P 相当于上箭头键,即显示上一个命令
Ctrl-N 相当于下箭头键,即显示下一个命令
Ctrl-T 用于颠倒光标所在处字符和前一个字符的位置。(目前不知道有什么作用,哪位朋友知道?)
Ctrl-J 相当于回车键
Alt-. 用于提取历史命令中的最后一个单词。你先执行history命令,然后再敲击此快捷键若干下,你就懂了!
Alt-BackSpace 用于删除本行所有的内容,基本上和Ctrl-U类似。
Alt-C 用于将当前光标处的字符变成大写,同时本光标所在单词的后续字符都变成小写。
Alt-L 用于将光标所在单词及所在单词的后续字符都变成小写。
Alt-U 用于将光标所在单词的光标所在处及之后的所有字符变成大写。
ps:使用bind -P命令可以查看所有键盘绑定。
ps2:Alt快捷键较少使用,因为常常和编辑器冲突
相关推荐
【电脑使用小常识】 电脑是现代生活中不可或缺的工具,正确的使用和保养方法能极大地延长其使用寿命,提升工作效率。以下是一些关键的电脑使用和维护知识: 1. **计算机的摆放**: - 计算机应摆放在避免阳光直射...
对于一些电脑菜鸟会有些帮助。里面简单的介绍了一下电脑的基础常识。
在【交通知识常识】部分,课程提醒孩子们在道路上行走时要遵守交通规则,不能在道路上玩耍或追逐,这不仅阻碍交通,还可能导致意外伤害。同时,孩子们要学会识别交通标志,如禁止行人通行、人行横道、非机动车道等,...
140个电脑小知识、小技巧 1. 重装Windows XP不需再激活 如果你需要重装Windows XP,通常必须重新激活。事实上只要在第一次激活时,备份好Windows\System32目录中的Wpa.dbl文件,就不用再进行激活的工作了。在重装...
非常有用的120个生活小常识 非常有用的120个生活小常识 非常有用的120个生活小常识 非常有用的120个生活小常识
【联想电脑使用小常识】 联想电脑使用小常识涵盖了日常维护和常见问题的解决方案,旨在帮助用户更好地使用和保护他们的联想电脑。以下是一些关键的知识点: 1. **系统变慢或报错**: - 系统变慢可能是因为安装...
【电脑维修小常识全解析】 电脑维修涉及到许多不同的硬件组件,了解这些常见故障的解决方案能够帮助用户节省时间和金钱。以下是一些主要硬件组件及其可能出现的问题和处理方法: 1. **主板故障**:主板是计算机的...
健康体育运动小常识.pdf
网络安全小知识,防范各种诈骗 微信伪装身份诈骗 网络安全小常识全文共4页,当前为第2页。网络安全小常识全文共4页,当前为第2页。犯罪分子利用微信附近的人查看周围朋友情况,伪装成高富帅或白富美,骗取感情和信任后...
【功夫查-生活小常识】是一款致力于提供日常生活小知识的应用程序。从其名称可以看出,它旨在帮助用户快速查询和学习各种实用的生活技巧和常识。在快节奏的现代生活中,掌握这些小常识往往能让我们的日常生活变得...
工厂电气设备防爆小常识 一、防爆电气设备的重要性 在工厂环境中,尤其是石油化工、矿业等危险品生产领域,存在着大量的易燃易爆物质。这些物质一旦遇到火源,比如火花、高温或者电弧,就可能会引发爆炸或火灾事故...
以下是一些关于小学生身体健康的小知识,旨在帮助孩子们养成良好的生活习惯,预防疾病,保障健康成长。 1. 定期理发和洗头:保持头发清洁能有效去除头皮上的污垢、头屑和病菌,预防头癣和皮肤病,避免滋生头虱。这...
面相小知识.txt 1,鼻子小 2,鱼缸不 3,脸颊粉 4,颧黑, 5,正西有 6,厨房不 7,寒背的 8,耳朵圆
【生活小常识】 生活中的小窍门往往能为我们带来极大的便利,这些小常识不仅实用,还能帮助我们解决日常生活中的一些小困扰。...在校园广播站中分享这些小知识,不仅能帮助学生解决日常问题,也能增加他们的生活智慧。
生活中的科学小常识涵盖了...这些生活中的科学小知识,简单易行,且在日常生活中十分实用,不仅可以解决生活中的小困扰,还能维护身体健康。通过了解和应用这些知识,我们可以让生活更加便利,同时提高自我保健意识。
老年人的健康是家庭和社会关注的重点,以下是一些关于老年人保持健康的小知识: 1. 饮食注意事项: - 空腹避免食用番茄,最好在饭后食用,以减少对胃部的刺激。 - 清晨醒来后先喝一杯水,有助于预防结石形成,...
以下是一些关键的安全小知识: 1. **防扒窃**:出门时,尽量将现金、贵重物品和重要证件分开放置,避免全部集中在一个包里。大额货币和信用卡应放在贴身口袋,减少被盗风险。避免携带过多引人注目的物品,行走时...
【饮食小常识1.pdf】这份...总的来说,这份资料提供了丰富的饮食小知识,旨在引导人们形成健康的饮食习惯,通过食物的选择和搭配来维护身体的各个器官和系统的健康。通过科学饮食,我们可以预防疾病,提高生活质量。
【小学生自我保护小常识】 这份PPT主要针对小学生,提供了他们在日常生活中的安全防护知识,尤其强调了交通安全。安全教育是每个孩子成长过程中不可或缺的一部分,它能够帮助孩子们建立正确的自我保护意识,预防...
幼儿园安全活动教案《乘车小常识》.pdf