在上一节里提到了用利用gcd快速实现单例模式. 一个项目里面可能有好几个类都需要实现单例模式.为了更高效的编码,可以利用c语言中宏定义来实现. 新建一个Singleton.h的头文件. // @interface #define singleton_interface(className) \ + (className *)shared##className; // @implementation #define singleton_implementation(className) \ sta…
首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数; 除外,该语句表示指针为空): 所以 ; 这样的代码是不允许的.在C++里面直接是error的,即使在一些C编译器中以warning的形式提示,但是warning有的时候也很严重.所以这种东西不要用.从const int到int*是不存在隐士转换的. 正确的使用方法是 ; 这样就先使10这个地址增加一个类型,然后在赋值给int *p.看这句话的汇编: 00401…
[转] 1.1. 宏定义软件的代码,从跨平台的角度来看,可以分为平台相关的和平台无关的.采用C/C++编写的软件,在进行移植时,平台无关的的代码基本上不需要做大的改动,但平台相关的代码需要做很大的调整.这里所说的平台包括操作系统和编译器,为了能够做到让编译器在编译时根据当前的平台状况来自动选择需要编译的代码,我们一般需要用C/C++的编译宏指令来实现.举个例子,下面的一段代码是得到系统当前的时间并且格式化成字符串的操作,注意其中宏指令#ifdef -#else-#endif的使用.这段代码可以在…
//#define 宏定义(宏定义一般大写) //知识点一-->#define的作用域:从#define开始,从上往下,如果遇到#undef就到#undef处结束,如果没有就是作用于当前整个文件 #include<stdio.h> #include<stdlib.h> //知识点二-->宏定义作用 //宏定义作用1:起到替换作用,可以定义常量 #define X 10 //宏定义作用2:替换代码的任意部分(一般用于易语言,或者加密代码) #define 水乃万物之源 m…
1.首次启动判断: #define First_Launched @"firstLaunch" 2.ios7系统判断: #define IsIOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >=7.0 ? YES : NO) 3.判断是否Retina屏.是否IPhone5.是否IPad #define isRetina ([UIScreen instancesRespondToSelector: @select…
网上对IOS的宏定义比较多,我总结了一些最常用的宏,后续还会继续补上. 1.首次启动判断: #define First_Launched @"firstLaunch" 2.ios7系统判断: #define IsIOS7 ([[[UIDevice currentDevice] systemVersion] floatValue] >=7.0 ? YES : NO) 3.判断是否Retina屏.是否IPhone5.是否IPad #define isRetina ([UIScreen…
http://www.linuxidc.com/Linux/2016-08/134481.htm http://www.linuxidc.com/Linux/2013-01/78003.htm http://blog.csdn.net/npy_lp/article/details/7010752 http://www.linuxdiyf.com/viewarticle.php?id=104768 本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇文章作铺垫. offs…
转自:http://www.linuxidc.com/Linux/2015-07/120014.htm 本文首先介绍Linux下的经典宏定义,感受极客的智慧,然后根据该经典定义为下篇文章作铺垫. offsetof宏定义: // 获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移量.#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 说明:获得结构体(TYPE)的变量成员(MEMBER)在此结构体中的偏移…
IOS开发,从应用跳转到用浏览器打开网页: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.oatos.com/bbs/"]]; 用一个Button覆盖整个cell,加入动作 cell.accessoryType = UITableViewCellAccessoryNone; UIButton *btn = [[UIButton alloc] initWithFrame:CGRec…
ios讨论群1群:135718460 有些时候.我们须要将代码简洁化,这样便于读代码.我们能够将一些不变的东东抽取出来.将变化的东西作为參数. 定义为宏,这样在写的时候就简单多了. 以下例举了一些经常使用的宏定义和大家分享: 1. 推断设备的操作系统是不是ios7 #define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 推断当前设备是不是iPhone5 #define kScreenIph…