07 2013 档案
摘要:list_entry定义/*** list_entry - get the struct for this entry* @ptr: the &struct list_head pointer.* @type: the type of the struct this is ...
阅读全文
摘要:void指针 void指针平时用的地方不多,但是不代表它不重要#include typedef int*(*TY)[5]; //指针数组的指针类型int main(void){ void *p1,*p2,*p3; int a1 = 100; int *px = &a1; //一级指针 int **py = &px; //二级指针 int a[5] = {1,2,3,4,5}; int *b[5] = {a,a+1,a+2,a+3,a+4}; //指针数组 p1 = &py; p2 = b; p3 = &b; ...
阅读全文
摘要:arm-linux-gcc -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 -Wall 指定产生全部的警告信息 -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高 -c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的...
阅读全文
摘要:反射反射: 在运行时动态分析或使用一个类进行工作。 java.lang.Class类:描述类信息的类。 类对象:描述一个类信息的对象,当虚拟机加载类的时候,就会创建这个类的类对象并加载该对象,Class是类对象的类型。 获得类对象的方式: 用" 类名.class "获得这个类的类对象。 用类的对象掉用getClass(),如object.getClass()得到这个对象的类型的类对象。 可以使用Class.forName(类名),也可以得到这个类的类对象,(注意,这里写的类名必须是全限定名(全名),是包名加类名,XXX.XXX.XXXX)。 基本类型也有类对...
阅读全文
摘要:判断日期为一年中的第几天(考虑闰年) 1 /* 2 * 计算该日在本年中是第几天,注意闰年问题 3 * 以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天 4 * 特殊情况,闰年且输入月份大于3时需考虑多加一天 5 */ 6 7 /* 8 *@author: 成鹏致远 9 *@net: http://infodown.tap.cn10 */11 12 #include 13 #include 14 15 struct year_mon_day16 {17 int year;18 int mon;19 int day;20 };21 22 int ...
阅读全文
摘要:冒泡排序 1 package com.lcw.bubble; 2 3 public class BubbleSort 4 { 5 /** 6 * 冒泡排序 7 * @param args 8 * @author 成鹏致远 9 */10 11 public static int[] bubleSort(int[] before)12 {13 int temp;14 for (int i = 0; i before[j+1])19 {20 ...
阅读全文
摘要:修饰符abstract 抽象的,定义框架不去实现,可以修饰类和方法abstract修饰类: 会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型 抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。abstract修饰方法: 会使这个方法变成抽象方法,也就是只有声明而没有实现,实现部分以";"代替,需要子类继承实现。 抽象方法代表了某种标准,定义标准,定义功能,在子类中去实现功能(子类继承了父类并需要给出从父类继承的抽象方法的实现)..
阅读全文
摘要:安装 NFS servermystery@lcw:~$ sudo apt-get install nfs-kernel-server 编辑/etc/exports,添加目标系统的根文件系统映射目录,假如目标系统的根文件系统最后映射到/home/mystery/nfs_files,则/etc/exp...
阅读全文
摘要:类和对象类:主观抽象,是对象的模板,可以实例化对象 习惯上类的定义格式:package xxx; import xxx; public class Xxxx{ 属性 ······; 构造器 ······; 方法 ······;}View Code 定义属性:实例变量格式:[ 修饰符 ] 类型 变量名 [ = ? ]实例变量定义在类中但在任何方法之外。实例变量有默认值:各种各样的0。(同数组)实例变量的作用域至少在本类
阅读全文
摘要:配置java环境变量JAVA_HOME:配置JDK的目录CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码)PATH:指定可执行程序的位置LINUX系统 (在" .bash_profile "下的环境变量设置)JAVA_HOME=/opt/jdk1.5.0_06CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarPATH=$PATH:$JAVA_HOME/bin:.export JAVA_HOME CLASSPATH PATHView Code 将指定的环境变量声明为全局的windows系统 右击
阅读全文
摘要:一、准备工作 首先更新software sources,找到最快的源lcw@ubuntu:~$ sudo apt-get update二、安装sambalcw@ubuntu:~$ sudo apt-get install samba smbfs samba-common smbclient三、创建...
阅读全文
摘要:在x86平台下分析下面的代码输出结果 1 int main(void) 2 3 { 4 5 int a[4] = {1, 2, 3, 4}; 6 7 int *ptr1=(int *)(&a+1); 8 9 int *ptr2=(int *)((int)a+1);10 11 printf("%x, %x/n", ptr1[-1], *ptr2);12 13 return 0;14 15 }&a+1 首先明确,a是一个具有4个整型变量的数组的名字,具体地说是这种数组的首元素的首地址,而&a是数组的首地址,请注意措辞。而关于指针加1,则需要指针运算...
阅读全文
摘要:对数组名进行取地址运算int a[] = {1,2,3};int (*p)[3] = &a; //注意左值对数组名取地址,得到的指针为指向整个数组的指针。形参数组形参为数组时勿须带数组长度,因为计算机不会处理,如果需要传数组长度,需要另外加参数。一维数组指针 1 #include 2 3 //void array_add(int a[], int len) 4 void array_add(int *p, int len) 5 { 6 int i = 0; 7 8 for(i=0; i 2 3 //void array_add(int a[][], int len...
阅读全文
摘要:题目以下两个程序片段A 和B ,问哪个能进入循环?片段A:unsigned short i;unsigned short index = 0;for(i=0; i < index-1; i++){ ........}片段B:unsigned short i;unsigned long index = 0;for(i=0; i < index-1; i++){ ........}解答 此题主要考虑类型之间的隐式转换问题,答案是B能进入循环 对于片段A:short - int 的结果是int 型的,所以结果是:0<-1,不满足条件; 对于片段B:unsigned long - i
阅读全文
摘要:对于一个无符号数字x,截断它到k位的结果就相当于计算xmod2^k.在大多数的机器上,整数乘法指令相当地慢,需要12或者更多的始终周期,然而其他整数运算-例如加法、减法、位移运算和移位-只需要1个时钟周期.因此,编译器使用的一项重要的优化就是试着使用移位和加法运算的组合来代替乘以常数因子的乘法.在大多数的机器上,整数除法要比整数乘法更慢-需要30或者更多的始终周期.除以2的幂也可以用移位运算来实现,只不过我们用的是右移,而不是左移.对于无符号和二进制补码数,分别使用逻辑移位和算术移位来达到目的.注意系统的分类:主流的IA32(也就是x86),以及x86-64(也就是x64),还有种Intel的
阅读全文
摘要:C 语言嵌入式系统编程修炼之一:背景篇 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C 语言:一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。 实际上,大多数嵌入式系统的硬件平台包括两部分:以通用处理器为中心的协议处理模块,用于网络控制协议的处理;以数字信号处理器(DSP)为中心的信号处理模块,用于调制、解调和数/模信号转换。嵌入式系统硬件架构协议处理模块中的 FLASH 和 RAM 几乎
阅读全文
摘要:一、为什么要使用库文件 我们在实际编程中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同,实现代码也相同,也是我们所说的重复代码。比如,很多项目里都有一个用户验证的功能。 代码段如下://UserLogin.h文件,提供函数声明int IsValidUser(char* username...
阅读全文
摘要:下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别。一、进程控制fork创建一个新进程clone按指定条件创建子进程execve运行可执行文件exit中止进程_exit立即中止当前进程getdtabl...
阅读全文