上一页 1 ··· 3 4 5 6 7 8 9 10 下一页

2013年8月27日

C语言指针类型 强制转换

摘要: 关于C语言指针类型 强制转换 引用一篇文章:C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不能简单的通过检查一个值的位来判断它的类型。例如,定义如下:int a;float b;double c;long double d;(假设它们所占的字节分别是4、8、8、10,而且连续存储于某个地址空间,起始地址是100,则我们可以得到如下内存分布)a变量... 阅读全文

posted @ 2013-08-27 18:03 Arts&Crafts 阅读(4103) 评论(0) 推荐(1) 编辑

C语言字符数组越界现象

摘要: 今天在用C的过程中发现一个奇怪的现象。代码如下:char chs[2];chs[0] = 'a';chs[1] = 'b';printf("%c\n", chs[2]);结果 输出 是 a。在网上查了一下.有个网友是这样回答的:“我们定义一个变量,实际上是向操作系统申请一段内存。比如上述程序的char a[10],系统会给它分配一段连续的内存块用来存放数据。这个内存块是随机的,它可以是目前空闲的任意一个内存段。由于这个不确定性,所以它后面的内存块有两种可能:如果恰好这段内存的后面的内存段没有被其他程序占用,那么我们对它进行使用是不会出错的。就 阅读全文

posted @ 2013-08-27 17:19 Arts&Crafts 阅读(246) 评论(0) 推荐(0) 编辑

2013年8月11日

用OpenGL简单编写的一个最简单贪吃蛇游戏

摘要: 刚学OpenGL的时候,写的一个最简单的贪吃蛇游戏代码 如下://贪吃蛇游戏#include#include#include#include#define UP 10 //上#define DOWN -10//下#define LEFT -1//左#define RIGHT 1//右#define NODE_WIDTH 10;//蛇身节点正方形的宽度#define STEP_SIZE 10;//运动步长#define PANEL_WIDTH 500;//面板长度#define PANEL_HEIGHT 400;//面板宽度int dir = RIGHT;//运动方向,初始化为右struct.. 阅读全文

posted @ 2013-08-11 08:38 Arts&Crafts 阅读(1964) 评论(0) 推荐(0) 编辑

2013年6月7日

Log4j详细介绍(七)----日志格式化器Layout

摘要: 日志格式化器Layout负责格式化日志信息。方法log.error()的参数只包含日志信息,利用Layout可以附加其他信息,以输出更多的信息或者布局显示。 PatternLayout布局 PatternLayout是最常用的格式化器,用户可以自定义输出信息,例如日期,时间,所在的线程,类名,文件名,方法名,信息级别,文件级别,文件行数,例如: 1 # ERROR级别,输出到A1 2 3 log4j.rootLogger=DEBUG, A1 4 5 # 定义A1为控制台输出 6 7 log4j.appender.A1=org.apache.log4j.ConsoleAppender 8 ... 阅读全文

posted @ 2013-06-07 23:23 Arts&Crafts 阅读(6306) 评论(0) 推荐(1) 编辑

Log4j详细介绍(六)----自定义输出

摘要: Log4j支持自定义输出。所有输出都是实现自Appender接口。一般来说,自定义输出只需要继承AppenderSkeleton类,并实现几个方法就可以了。 看一个自定义输出的例子。CountingConsoleAppender跟控制台输出类似,不同的是会统计日志输出的次数。当输出次数超过预定的值时,会做相应的业务处理(这里为打印一行提示信息),并停止输出,代码如下。 1 import org.apache.log4j.AppenderSkeleton; 2 import org.apache.log4j.spi.ErrorCode; 3 import org.apache.log4... 阅读全文

posted @ 2013-06-07 21:25 Arts&Crafts 阅读(1701) 评论(1) 推荐(1) 编辑

Log4j详细介绍(五)----输出地Appender

摘要: Appender表示日志输出到什么地方,常用的输出地有控制台,文件,数据库,远程服务器等。Log4j中内置了常用的输出地,一般情况下配置一下即可使用。所有的Appender都实现自org.apache.log4j.Appender借口。在log4j.properties中,Apender都使用log4j.appender.*配置 输出到控制台 控制台是最常用的输出地,前面的例子用的就是控制台输出(ConsoleAppender)。控制台输出实现类为org.apache.log4j.ConsoleAppender,例如:#跟记录器,ERROR,输出到A1log4j.rootLogger=... 阅读全文

posted @ 2013-06-07 21:03 Arts&Crafts 阅读(13896) 评论(0) 推荐(0) 编辑

2013年6月6日

Log4j详细介绍(四)----日志记录器Logger

摘要: Log4j配置中有3个重要的概念:日志记录器(Logger),输出地(Appender)以及日志格式化器(Layout)。其中Logger负责记录日志,Appender负责输出到什么地方,Layout负责以什么格式输出,输出那些附加信息(例如时间,类名,方法名,所在行数等) Logger就是Java代码中的Logger,例如:1 public static Logger log = Logger.getLogger(Log4jTest.class); Logger是有名字的,它的名字便是Logger.getLogger()方法参数。如果参数为所在的类,Log4j会去类名为Logger的名... 阅读全文

posted @ 2013-06-06 21:06 Arts&Crafts 阅读(3333) 评论(0) 推荐(0) 编辑

Log4j详细介绍(三)----Log4j的优化

摘要: Log4j内部使用了大量的优化,缓存工作,使输出时对服务器的压力,消耗的时间,资源等都达到最小。例如:1 log.debug("debug信息");2 log.warn("warn信息"); 这两句日志可能被记录到日志文件中,但是写的过程不同于常规的打开文件,写文件,关闭文件等流程,频繁地打开文件,关闭文件需要消耗大量资源。Log4j只有初始化时候打开文件,并保持对文件的写控制,知道系统结束的时候才关闭文件。这样就使I/O次数达到最小,提高了效率。 而当输出级别为ERROR时,log.debug(),log.waring()方法会因为输出级别小雨ERRO 阅读全文

posted @ 2013-06-06 19:35 Arts&Crafts 阅读(830) 评论(0) 推荐(0) 编辑

Log4j详细介绍(二)----Commons-logging控件

摘要: 除了Log4j还有一种选择是使用commons-logging。commons-logging是Apache commons类库中的一员。Apache commons类库是一个通用的类库,提供了基础的功能,例如commons-fileupload,commons-httpclient,commons-io,commons-codec等 commons-logging能够选择使用Log4j还是JDK Logging,但不依赖与Log4j,JDK logging的API。如果项目的classpath中包含log4j的类库,则使用Log4j,否则使用JDK Logging,使用commons-... 阅读全文

posted @ 2013-06-06 19:13 Arts&Crafts 阅读(926) 评论(0) 推荐(0) 编辑

Log4j详细介绍(一)----Log4j快速入门

摘要: Log4j是目前运用最广泛的日志控件,它把日志分为ALL,TRACE(跟踪),DEBUG( 调试),INFO(信息),WARNING(警告),ERROR(错误),FITAL(致命),OFF等几个级别,级别依次升高.级别高的Level会屏蔽级别低的信息.如果设置为WARNING,则TRACE,DEBUG,INFO都不会输出。Log4j的使用非常简单 1 import org.apache.log4j.Logger; 2 3 public class Log4jTest { 4 public static Logger log = Logger.getLogger(Log4j... 阅读全文

posted @ 2013-06-06 17:46 Arts&Crafts 阅读(1010) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 下一页

导航