- // 安全释放
- #define RELEASE_SAFELY(__Pointer) do{[__Pointer release],__Pointer = nil;} while(0)
- // 屏幕的物理高度
- #define ScreenHeight [UIScreen mainScreen].bounds.size.height
- // 屏幕的物理宽度
- #define ScreenWidth [UIScreen mainScreen].bounds.size.width
- // 调试
- #define NSLOG_FUNCTION NSLog(@"%s,%d",__FUNCTION__,__LINE__)
- //----------------------图片————————————————————————————————————————
- //读取本地图片
- #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]
- //定义UIImage对象
- #define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]]
- //定义UIImage对象
- #define ImageNamed(_pointer) [UIImage imageNamed:_pointer]
- //———————————————————————颜色类———————————————————————————-----—————————————
- // rgb颜色转换(16进制->10进制)
- #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
- //带有RGBA的颜色设置
- #define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
- // 获取RGB颜色
- #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
- #define RGB(r,g,b) RGBA(r,g,b,1.0f)
- //背景色
- #define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]
- //清除背景色
- #define CLEARCOLOR [UIColor clearColor]
- #pragma mark - color functions
- #define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]
- #define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]
- //———————————————————————TAG宏———————————————————————————-----—————————————
- //viewWithTag
- #define VIEWWITHTAG(_OBJECT, _TAG) [_OBJECT viewWithTag : _TAG]
- //———————————————————————单例模式宏———————————————————————————-----—————————————
- //.h文件处的声明
- #define DEFINE_SINGLETON_FOR_HEADER(className) \
- \
- + (className *)shared##className;
- //.m文件处的声明
- #define DEFINE_SINGLETON_FOR_CLASS(className) \
- \
- + (className *)shared##className { \
- static className *shared##className = nil; \
- static dispatch_once_t onceToken; \
- dispatch_once(&onceToken, ^{ \
- shared##className = [[self alloc] init]; \
- }); \
- return shared##className; \
- }
- //———————————————————————单例模式———————————————————————————-----—————————————
- static DataBaseHandle * handle = nil;
- + (DataBaseHandle *)shareInstance
- {
- @synchronized(self){
- if (!handle) {
- handle = [[DataBaseHandle alloc] init];
- }
- }
- return handle;
- }
- —————————————不用你把所有NSLog的删除或注释,直接修改#if 判断的值就行了(1执行,0不执行)——————————————
- #if 1
- #define NSLog(FORMAT, ...) fprintf(stderr,"[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
- #else
- #define NSLog(FORMAT, ...) nil
- #endif
- #define NEED_OUTPUT_LOG 0
- #if NEED_OUTPUT_LOG
- #define SLog(xx, ...) NSLog(xx, ##__VA_ARGS__)
- #define SLLog(xx, ...) NSLog(@"%s(%d): " xx, __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
- #define SLLogRect(rect) \
- SLLog(@"%s x=%f, y=%f, w=%f, h=%f", #rect, rect.origin.x, rect.origin.y, \
- rect.size.width, rect.size.height)
- #define SLLogPoint(pt) \
- SLLog(@"%s x=%f, y=%f", #pt, pt.x, pt.y)
- #define SLLogSize(size) \
- SLLog(@"%s w=%f, h=%f", #size, size.width, size.height)
- #define SLLogColor(_COLOR) \
- SLLog(@"%s h=%f, s=%f, v=%f", #_COLOR, _COLOR.hue, _COLOR.saturation, _COLOR.value)
- #define SLLogSuperViews(_VIEW) \
- { for (UIView* view = _VIEW; view; view = view.superview) { SLLog(@"%@", view); } }
- #define SLLogSubViews(_VIEW) \
- { for (UIView* view in [_VIEW subviews]) { SLLog(@"%@", view); } }
- #else
- #define SLog(xx, ...) ((void)0)
- #define SLLog(xx, ...) ((void)0)
- #endif
相关推荐
初识Classic AUTOSAR开发工具链
在过去,软件和硬件之间具有很强的耦合性,阻碍了软件组件在不同硬件平台上的可移植性和重用性。而AUTOSAR作为汽车电子行业的标准,提供标准的软件接口定义,工程师可以根据需求将软件组件分配到汽车的ECU中,实现标准软件组件的可重用性。
来,看看这20个常用的宏定义!
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用的宏定...
AJ-Report开源数据大屏存在远程命令执行漏洞
该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被攻击者利用,危害后果十分严重。
IDA常见的宏定义(逆向)
/* This file contains definitions used by the Hex-Rays decompiler output. It has type definitions and convenience macros to make the output more readable. Copyright © 2007-2011 Hex-Rays */ #if defined...
vTaskStartScheduler()详解
是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。
基于eBPF的零侵入LLM智能体观测:AgentSight架构与实战
在分布式系统和云原生架构中,可观测性是保障应用稳定运行与高效排障的核心能力。其原理在于通过日志、指标和追踪三大支柱,从外部视角持续收集和分析系统状态,而非依赖应用内部埋点。这一技术价值在于能以统一、低开销的方式,理解复杂系统的内部行为,尤其在微服务、容器化及Serverless等动态环境中至关重要。应用场景广泛覆盖了性能监控、安全审计、故障诊断与根因分析。当我们将这一基础理念应用于当下快速发展的AI智能体领域时,便自然引出了对LLM智能体进行无侵入、系统级行为观测的需求。传统的应用层方案需要集成SDK,对闭
C语言宏定义详解
C语言宏定义详解
三端口DC-DC变换器设计与光伏储能协同控制
三端口DC-DC变换器是面向分布式能源系统的关键功率变换拓扑,通过在光伏输入、储能电池与直流负载三个端口间实现动态能量分配,解决多源异步供电下的电压稳定与功率平衡问题。其核心原理基于双Boost半桥架构与双闭环协同控制,融合MPPT最大功率点跟踪与电池智能充放电管理,在保证30V高精度稳压(±0.5V)的同时,支持光伏主导供电与电池支撑供电的自动模式切换。该技术显著提升光储系统能量利用率与供电连续性,广泛应用于微电网、便携式交直流电源及离网型光储一体机等场景,是构建柔性直流配电与智能能源管理的基础硬件单元。
IDA逆向常用宏定义
/* This file contains definitions used by the Hex-Rays decompiler output. It has type definitions and convenience macros to make the output more readable. Copyright (c) 2007-2011 Hex-Rays */ #if defined(__GNUC__) typedef long lon
Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)
通过下面十个步骤,我们就可以在ubuntu上使用vcs、verdi、dve等软件! 一、安装ubuntu系统,这个不在这里讲了,重点叫安装VCS、Verdi等软件 下面的过程一部分同其他网上流程一致,对其中部分进行修改。如果按照其他网上教程是不会成功的,本人亲测,下面是我试验网上不同文章的流程遇到的错误摸索后总结的流程,按照步骤保证可以成功运行,包括破解流程,使用时间不限制在2020年,可以自定义2030等等。 二、安装文件结构 –synopsys_installer #此程序用于安装下面三个程序。所以你想
23、变压器与电抗器知识详解
本文详细介绍了电力变压器的基本原理、等效电路、测试方法及多种运行方式,涵盖双绕组与自耦变压器的建模与应用。深入探讨了变压器极性判断、并联运行条件、电压调节技术,并扩展至非线性、磁滞、EMTP和高频模型,用于瞬态分析。同时阐述了地磁感应电流(GIC)的影响及对偶建模方法。最后系统介绍了各类电抗器的应用场景与特性,包括限流、无功补偿、滤波及特殊用途电抗器,全面覆盖电力系统中变压器与电抗器的核心知识。
IDA Pro plug-in defines
/* This file contains definitions used by the Hex-Rays decompiler output. It has type definitions and convenience macros to make the output more readable. Copyright (c) 2007-2011...
SAP项目中 Waterfall vs Agile 的深度对比分析背景:方法论的演进SAP项目实施方法论经历了显著的代际更替。早期以 ASAP(Accelerated SAP) 为代表,采用经典瀑
本文对比分析了SAP项目实施中瀑布模型(ASAP)与敏捷方法(SAP Activate)的核心差异。瀑布模型采用线性流程,需求固定但变更成本高;敏捷方法则通过迭代开发实现动态调整,强调最佳实践和用户持续参与。文章指出,SAP系统的复杂性使纯粹敏捷难以实施,需在标准化与定制化间取得平衡。最终建议根据项目特性选择方法论:稳定需求适用瀑布模型,变化频繁则推荐敏捷,而SAP Activate本质上是两者的结构化融合,代表未来趋势。关键在于匹配项目实际需求,而非盲目追随方法论潮流。
iOS常用宏定义大全
iOS常用宏定义大全
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
iOS常用宏定义
为了简化开发流程,提升工作效率,收集了一些平时常用的宏定义,今后会不定期更新 1.UI元素 //NavBar高度 #define NAVIGATIONBAR_HEIGHT 44 //StatusBar高度 #define STATUSBAR_HEIGHT 20 //获取屏幕 宽度、高度 #define SCREEN_WIDTH ([UIScreen main...
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
C语言宏定义技巧(常用宏定义)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> C语言宏定义技巧(常用宏定义) <span id= "ob_logd35550">写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
宏定义_20个成熟软件中常用的宏定义,赶快收藏!
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用的宏定义。1. 防止一个头文件被重复包含1#ifndefCOMDEF_H2#defineCOMDEF_H3//头文件内容4#endif2. 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。1typedefunsignedchar...
常用的宏定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
swift中常用宏定义
github学习地址:https://github.com/potato512/SYSwiftLearning // MARK: - 设备信息 /// 当前app信息 let GetAppInfo = NSBundle.mainBundle().infoDictionary /// 当前app版本号 let GetAppCurrentVersion = NSBundle.mai
常用宏定义总结
常用的宏定义总结 // // PrefixHeader.pch // JNdefine // // Created by Titan on 16/3/15. // Copyright © 2016年 Aaron Wong. All rights reserved. // #ifndef PrefixHeader_pch #define PrefixHea...
ios 常用宏定义大全
闲来无事, 根据以往项目经验,罗列一些最常用的宏定义,以供参考! 1. NSLog打印 #if DEBUG #define NSLog(FORMAT, ...) fprintf(stderr, "[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8St
C/C++常用宏定义
2019独角兽企业重金招聘Python工程师标准>>> ...
宏定义亲民级别,入门级别,常用方便宏定义
const double eps = 1e-8; //const只是用来定义常量,常量在代码中一直存在,但define是预处理功能,有本质区别 常用的浮点数比较宏定义: #define Equ(a,b) ((fabs((a)-(b)))<(eps)) //等于 #define More(a,b) (((a)-(b))>(esp)) //大于 #define Less(a,b) (((a...
IOS开发中常用的宏定义
有些时候,我们需要将代码简洁化,这样便于读代码。我们可以将一些不变的东东抽取出来,将变化的东西作为参数。定义为宏,这样在写的时候就简单多了。 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 #define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] )
嵌入式工程师常用的宏定义
关注+星标公众号,不错过精彩内容编排 | 李肖遥来源 |技术让梦想更伟大写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中...
8093



被折叠的 条评论
为什么被折叠?



