当linux中的C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因,在实际编程中用这一招解决了不少原本看来莫名其妙的问题。但是errno是一个数字,代表的具体含义还要到errno.h中去阅读宏定义,...
分类:
系统相关 时间:
2015-03-19 12:54:30
阅读次数:
153
在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。
...
分类:
其他好文 时间:
2015-03-19 00:57:40
阅读次数:
113
前一篇博文中:linux内核初始化阶段通过early_trap_init()函数完成了把异常向量拷贝到0xFFFF0000开始的地方,这些异常向量大部分指向通过vector_stub宏定义的那段代码,这段代码完成的主要工作是计算异常返回地址、保存现场、切换到svc模式、跳转执行汇编异常处理函数,汇编异常处理函数工作在svc模式,先接管上一异常模式保存的现场,然后调用C处理函数,C函数返回后执行一段...
分类:
系统相关 时间:
2015-03-19 00:57:05
阅读次数:
245
一.设计思路:1题目避免重复:建立两个数组,rand()函数确定随机数,将这两个数加入两个数组,重复确定随机数,判断这两个数是否与两个数组的数值相同以避免重复,无重复则输出题目。2可定制(数量/打印方式):数量和打印方式用宏定义确定输出几行与几列。3是否有乘除法:定义一个四则运算符的数组,前两个表示...
分类:
其他好文 时间:
2015-03-18 12:09:04
阅读次数:
128
__FILE__和__LINE__这两个神奇的宏定义是C语言中偶尔有用的特性。他们被构建在预处理程序中,并在C语言语法分析程序运行前被展开。尽管Swift没有预处理程序,它却提供了名称相似的类似功能,但隐藏着极其不同的实现方式。内建标识符就像在the Swift programming guide中...
分类:
编程语言 时间:
2015-03-18 11:58:30
阅读次数:
176
在阅读源码的过程中,发现找不到fork函数的定义。后来在linux/init/main.c中找到了这样一条语句static inline _syscall0(int,fork)原来这里就是fork函数的定义。系统在linux/include/unistd.h有一个宏定义。#define _sysca...
分类:
系统相关 时间:
2015-03-17 13:53:26
阅读次数:
165
宏是C编译系统的预处理,何谓“预”?即是正式工作开始之前的准备工作。所以宏替换是在对程序编译之前进行的~也就是直接将宏定义的字符,转换成后面的表达式。逗号表达式:逗号运算符,优先级别最低,它将两式联接起来,可连续执行代码:直接对文件输出1-1000的数字#include #define B P,P,...
分类:
其他好文 时间:
2015-03-17 00:23:47
阅读次数:
116
(1) 编译器处理方式不同
define宏是在预处理阶段展开。
const常量是编译运行阶段使用。
(2) 类型和安全检查不同
define宏没有类型,不做任何类型检查,仅仅是展开。
const常量有具体的类型,在编译阶段会执行类型检查。
(3) 存储方式不同
define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。
...
分类:
其他好文 时间:
2015-03-16 13:02:44
阅读次数:
170
#ifndef __USB_H__#define __USB_H__//usb传输数据的宏定义描述#include "sys.h"typedef __packed union { U16 W; __packed struct { U8 L; U8 H; } WB;} U16_8;//定义一个16位长...
分类:
其他好文 时间:
2015-03-15 02:02:41
阅读次数:
300