register 用法注意与深入:   gcc -o test  test.c   这样编译的话会报错的,因为寄存器变量是不能取地址的,只有内存的变量才能取地址 寄存器变量取的是虚拟地址   #include <stdio.h>   int main(void) {      register int i;      int *p = &i;        return 0; }   深入解析:   一个变量存储是这样的,运行了一段程序后,就是开启了一个进程,那么这个进程的变量就是要存…
原文:编译预处理 -- 带参数的宏定义--[sky原创] 如有转载请注明出处   编译预处理  --  带参数的宏定义 前面为输出文件,后面为输入文件 gcc -E -o test.i test.c gcc -o test  test.i   test.c   test.i       取消宏定义 #undef 宏名   条件编译的三种形式     第三种 #if 常量表达式 源码1..... #else // 此部分可选 源码2... #endif   #----表示ABC(a) 即为 a这个…
原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创]   第一题 #include<stdio.h> int main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); (a+b)>6? puts(">6"):puts("<=6"); return 0; } 答案是:>6   第二题 #include<stdio.h> i…
在keil 4中添加stc系列芯片的方法: 1.从官网下载uv3.cdb的文件网址是:http://www.stcmcu.com/ 2.下载好后把uv3.cdb文件改成STC.cdb:3. 然后将[STC.cdb]放入[keil4]--[UV4]中:4.有些 keil 4 可能只有[ARM]和[UV4]这两个文件夹,那么我们之前安装过 keil 3 的朋友里面找到[c51]的文件夹将其复制到[keil 4]中,于此同时,下面这一步是很重要的,最好备份一下你的[TOOLS.INI]文件, [UV2…
diff 命令用法 1.”-u”:表示在比较结果中输出上下文中一些相同的行,这有利于人工定位 2.“-r“:表示递归比较各个子目录下的文件 3.“-N“:将不存在的文件当作空文件 4.“-w“:忽略对空格的比较 5.“-B“:忽略对空行的比较 例如:假设Linux-2.6.22.6目录中是原始的内核,Linux-2.6.22.6_ok目录中是修改后的内核,可以使用以下命令制作补丁文件linux-2.6.22.6_ok.diff(原始目录在前,修改过的目录在后) diff  –urN -w -B …
volatile 所有定义的变量都是在内存上面的,  例如: int i = 10; int j = i; int k = i;   i = 10; 是初始化的变量,存放在数据段,未初始化的变量存放在bss段 也就是i为左值时存放在内存上 j = i 此时 i 为右值,那么i的值在寄存器上,j就从寄存器上面取值 由于编译器的原因可能导致编译过程中寄存器上的值会改变 ,那么 k 取到的值就不是我们想要的了 如果加了volatile int k = i ; 那么k每次就从内存上取值,保证了取值的正确…
虚拟机要选择桥接,并且禁用有线和无线网卡,开启本地连接,本地连接属性要写如下:     ip地址是在连上板子后,windows   cmd  下  ipconfig得出的 板子的网线最好连接交换机或者路由器,再由用另一根网线连到电脑上面 如果直接板子连在电脑上的话,有时候nfs可能不行,因为网线这时候相当于是在全双工通信模式, 两个tx两个rx,所以不一定连的通,此时就需要用如下的samba和tftp去传输文件   虚拟机要设置静态ip vim /etc/network/interfaces #…
驱动开发   字符设备,块设备,网络设备   字符设备 以字节流的方式访问, 不能随机访问 有例外,显卡.EEPROM可以随机访问   EEPROM可以擦写1亿次,是一种字符设备,可以随机访问 读写是直接访问硬件的 flash 擦写次数有限,一百万次,容易有坏块   块设备 能随机访问 以”块“为单位进行访问 块大小一般为512字节 块的大小由硬件决定 是内核进行数据传输的基本单位     硬盘结构: 格式化分区是以柱面为单位的,即硬盘的柱面 如果有10个盘面,就有十个柱面   对于嵌入式设备…
程序执行的过程:     比如我们要执行3 + 2   程序计数器(PC) = 指令地址 指令寄存器(IR) = 正在执行的命令 累加器(AC) = 临时存储体   那么实际上执行了三条指令 每条指令又分为两部分:取址.执行   取址就是从寄存器里取一条指令放在IR寄存器   左上角的图,PC寄存器里面放的值是300 那么我们就从内存地址为300的位上取一条指令 1940的内容放到IR上去   一条指令 由操作码+操作数组成   1940  中的 1代表操作码,940代表操作数   1是从一个内…
rsync限速以及用法 -- :: 标签:限速 rsync 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xficc.blog.51cto.com/1189288/1567322 rsync是(限制为 100k Bytes/s): #rsync -auvzP--bwlimit= 本地的文件远程的文件 参数说明: v:详细提示 a:以archive模式操作,复制目录.符号连接,等价于 -rlptgoD . P:是综合了--pa…
一本正经 面试官:小伙子,谈谈对Redis的看法. 我:啊,看法呀,坐着看还是躺着看.Redis很小?很快?但很持久? 面试官:一本正经的说,我怀疑你在开车,不仅开开车还搞颜色. 我:... 面试官:去去去,我时间有限,别瞎扯淡.回到正题,你对Redis了解有多少. 我:轻量体积小.基于内存非常快.RDB配合AOF持久化让其一样坚挺持久. 面试官:说点具体的. 我:请看正文. 正文 简介 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存…
Linux服务器运维小技巧scp命令详细教程. 前言 今天给大家带来的是linux中比较实用的命令scp.善用小技巧,解决工作中的痛点. 掌握一门好的技术或者说一门好的艺术,最快捷的方式就是融入到工作中. 在工作的不断鞭策之下,我其实也想偷偷懒,有时候觉得怎样简单快捷怎样来.在某种特定的工作环境下,有些操作被限制死了,只能用传统的方式传输(比如定制的商业加密U盘.光盘刻录).当你了解实际情况后,可能有更优解,你会寻求其它的突破口或者折中方案. 夸张的说法,我用了1分钟熟悉了scp的用法,并直接运…
一.用途 文将介绍linux环境下有关文件訪问模式相关的命令.         umask用来设置默认的文件訪问模式屏蔽值:chmod用来改动文件的訪问模式.         本文将选取ubuntu14.04发行版做为描写叙述基础. 二.文件訪问模式 linux使用文件訪问模式保证文件的安全性,通过一个12bit的数据结构表示文件訪问模式的4组属性:         1.SUID.SGID.Sticky属性 :也叫特殊属性.         2.用户的读.写.可运行属性:也叫用户属性. 3.用户…
版权声明:Max Sky 原创文章.转载时请保留全部权并以超链接形式标明文章出处.否则将追究相关法律责任. https://blog.csdn.net/maxsky/article/details/36891301 2015年09月28日 请大家首先看准路由器速率是否在 150M 以上.然后:②你没有卸载干净: ③假设卸载驱动时提示你重新启动生效你没有重新启动.④我也不知道了 8.更新好了连接WiFi.如今速率应该是150Mbps了(当然要路由器支持2.4G N哦) 最后提供一个仅供測试的方法,…
站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05…
前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的时候,运维或者是开发人员往往会纠结使用哪个.这里给出建议,使用iptables工具管理就禁用firewalld,使用firewalld工具管理就禁用iptables,二者选其一即可,避免产生混乱. 此篇文章不会在原理上做深究,主要以实用性为主,原理可以阅读相关书籍慢慢品味. 正文 一.Netfilt…
Linux服务器搭建ftp详细教程. 前言 本文,主要以vsftp软件为主进行讲解,版本为3.0.2.以介绍设置虚拟用户.权限验证为主,linux权限知识默认大家都有所了解.vsftpd设置有两种模式:主动模式.被动模式. Linux网络文件共享.例如NFS.Sambs.FTP,其中以FTP应用最为广泛,成为了当下linux文件系统中主流的网络文件共享工具.介绍FTP主要有几种常见的工具vsftp.proftp.wu-ftp.pureftp,各种FTP软件无优劣之分,实际工作中选择自己熟悉的一款…
转自 http://blog.csdn.net/njyxfw/article/details/7516143 今天一个同事问到我,有没动态注册监听的命令,查了下,找到了alter system register的用法 1 Static Registration via set the listener.ora2 Dynamic Instance Registration via the PMON At instance startup time, the PMON process will us…
1. 综述 终于来到了SSQLS( Specialized SQL Structure),照我看来这是一个很类似于Hibernate的功能.也就是说,通过SSQLS可以将一张表完全对应到一个C++结构体中,然后只要对于这个结构体进行操作,同时再加入到对应的mysqlpp:: Query对应的方法中,我们就可以执行对应的SQL语句. 值得说一下的是,该功能在实际项目中还是相当有用的,但是笔者所在公司由于其业务的特殊性,通常来说表的结构会非常非常大(有一些表居然有近200个字段).根据作者的manu…
服务端代码实现如下,其中包括一个静态内部类Handler来作为处理器,处理不同的操作.注意在遍历选择键集合时,没处理完一个操作,要将该请求在集合中移除./*模拟服务端-nio-Socket实现*/public class NIOServer {    public static void main(String[] args) {        try {            //创建ServerSocketChannel通道,绑定监听端口为8080            ServerSock…
在新版的MvvmLight中,DialogMessage被标注为已过时,需要用IDialogService来替代,IDialogService的具体用法如下: 先在主窗体中实现IDialogService : public partial class MainWindow : Window, IDialogService public System.Threading.Tasks.Task ShowError(Exception error, string title, string butto…
首先得说明什么叫“编译单元”.每个 .c 文件会被编译为一个 .o 文件,这个就是一个编译单元.最后所有的编译单元被链接起来,就是一个库或一个程序. 一个变量/函数,只要是在全局声明的,链接之后都隐含地在所有编译单元中可见.但你的声明可能仅出现在一个 .c 文件中,这就暗示你不想把这个名字暴露给其它编译单元,这种情况下就得用 static 关键字,表示这个名字具有“内部链接”,只对当前编译单元有效.但还有一种可能,你确实想暴露这个名字,但其它的编译单元希望知道这个名字被声明为什么类型,所以你需要…
在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家梳理一下知识,给大家一点点帮助.作者是菜鸟一枚,难免出错,还望各位大牛不吝赐教. 首先,来看看const的基本含义.在 C/C++ 语言中,const关键字是一种修饰符.所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实际代码.就 const 修饰符而言,它用来告诉编译器,被修饰的这些东…
转自:https://blog.csdn.net/u010757264/article/details/49932829 C++中变量.函数的属性包括数据类型和存储类别.存储类别分为静态存储和动态存储两类,指数据在内存中的存储方式(静态和动态),包含auto,static,register,extern四种.auto register是用来修饰变量的,static extern修饰变量函数都可以. 变量的生存周期 变量从建立到撤销的时间段成变量的生存周期.静态变量,从变量产生到整个程序执行结束.…
我们知道String replaceAll(参数a, 参数b) 参数a是需要些正则表达式的. 但是今天试了试,发现参数b也有一些其它特性. 查看源码后,发现有些特性是平时不怎么用的.下面我来介绍一下这两个参数的特性. 参数a是正则表达式这个就没什么特色了. 参数b有点特殊. 参数b中对\ 和 $ 进行了特殊处理. 查看源码可以发现最后会调用下面的方法: java.util.regex.Matcher的appendReplacement方法 下面对参数a和参数b一些特殊用法进行详细的介绍,并带有实…
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int main(){ 6 char str[100]; 7 //用法一:取指定长度的字符串 8 sscanf("12345","%4s",str); 9 printf("用法一\nstr = %s\n",str); 10 11 //用法二:格式化时间 12 int year,mo…
  关于文件状态   一般仓库中的文件可能存在于这4种状态: 1)Untracked files                     → 文件未被跟踪(A)  2)Untracked but not Change   → 已跟踪,但是未修改(B)  3)Changes but not updated     → 已跟踪,文件被修改,但并没有添加到暂存区(C)  4)Changes to be committed    → 已跟踪,文件被修改,已添加到暂存区,这是下次提交的内容(D)   常用…
在使用Symphony项目时,需要一些常用的twig,经过自己做的几个项目,自己的总结如下: 一.twig-数据判断 有时候在使用后台传给前台数据时需要判断是否有这个值,(是否为空(”或null)或是否定义defined或is empty) 例如: 多维数组时: {% if item.image is defined %} <div class=”trade-show-imgs”> {% for img in item.image %} {% if img != “” %} <div c…
一.什么是Ajax Ajax英文全称为“ Asynchr JavsScript and XML”(异步的JavaScript和XML),是一种创建 交互式网页的开发技术. 二.Ajax技术的核心 Ajax是一系列相关技术的融合,其核心包括XMLHttpRequest.JavsScript和DOM技术,数据格式 的不同可能会用到Json或者XML的技术. XMLHttpRequest是它的核心的内容,它能够为页面中的JavaScript脚本提供特定的通信方式, 从而使页面的javascript脚本…
#起别名避免重名 import numpy as np #小技巧:print从外往内看==shape从左往右看 if __name__ == "__main__": print('numpy版本号 {}'.format(np.version.version)) n_1 = np.array([1,2,3]) print('\n{} \n{} 维数组 \n{} 形状包含元素个数'.format(n_1, n_1.ndim, n_1.shape)) n_2 = np.array([[1,2…