一些常用的宏定义

【C语言宏定义】来,看看这20个常用的宏定义! 写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。 下面列举一些成熟软件中常用的宏定义: —————————————— 1、防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif —————————————— 2、重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolea 阅读详情
[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. // 安全释放  
  2. #define RELEASE_SAFELY(__Pointer) do{[__Pointer release],__Pointer = nil;} while(0)  
  3.   
  4. // 屏幕的物理高度  
  5. #define  ScreenHeight  [UIScreen mainScreen].bounds.size.height  
  6.   
  7. // 屏幕的物理宽度  
  8. #define  ScreenWidth   [UIScreen mainScreen].bounds.size.width  
  9.   
  10. // 调试  
  11. #define NSLOG_FUNCTION NSLog(@"%s,%d",__FUNCTION__,__LINE__)  
  12.   
  13.   
  14.   
  15. //----------------------图片————————————————————————————————————————  
  16.     
  17. //读取本地图片    
  18. #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]    
  19.     
  20. //定义UIImage对象    
  21. #define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]]    
  22.     
  23. //定义UIImage对象    
  24. #define ImageNamed(_pointer) [UIImage imageNamed:_pointer]   
  25.   
  26.   
  27.   
  28. //———————————————————————颜色类———————————————————————————-----—————————————  
  29. // rgb颜色转换(16进制->10进制)    
  30. #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]    
  31.     
  32. //带有RGBA的颜色设置    
  33. #define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]    
  34.     
  35. // 获取RGB颜色    
  36. #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]    
  37. #define RGB(r,g,b) RGBA(r,g,b,1.0f)    
  38.     
  39. //背景色    
  40. #define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]    
  41.     
  42. //清除背景色    
  43. #define CLEARCOLOR [UIColor clearColor]    
  44.     
  45. #pragma mark - color functions    
  46. #define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]    
  47. #define RGBACOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]    
  48.   
  49.   
  50.   
  51.   
  52. //———————————————————————TAG宏———————————————————————————-----—————————————  
  53. //viewWithTag  
  54. #define VIEWWITHTAG(_OBJECT, _TAG)    [_OBJECT viewWithTag : _TAG]   
  55.   
  56.   
  57.   
  58.   
  59. //———————————————————————单例模式宏———————————————————————————-----—————————————  
  60.       //.h文件处的声明  
  61. #define DEFINE_SINGLETON_FOR_HEADER(className) \  
  62. \  
  63. + (className *)shared##className;  
  64.   
  65.       //.m文件处的声明  
  66. #define DEFINE_SINGLETON_FOR_CLASS(className) \  
  67. \  
  68. + (className *)shared##className { \  
  69.     static className *shared##className = nil; \  
  70.     static dispatch_once_t onceToken; \  
  71.     dispatch_once(&onceToken, ^{ \  
  72.         shared##className = [[self alloc] init]; \  
  73.     }); \  
  74.     return shared##className; \  
  75. }  
  76.   
  77. //———————————————————————单例模式———————————————————————————-----—————————————  
  78. static DataBaseHandle * handle = nil;  
  79. + (DataBaseHandle *)shareInstance  
  80. {  
  81.     @synchronized(self){  
  82.         if (!handle) {  
  83.             handle = [[DataBaseHandle alloc] init];  
  84.         }  
  85.     }  
  86.     return handle;  
  87. }  
  88.   
  89. —————————————不用你把所有NSLog的删除或注释,直接修改#if 判断的值就行了(1执行,0不执行)——————————————  
  90. #if 1  
  91.   
  92. #define NSLog(FORMAT, ...) fprintf(stderr,"[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);  
  93. #else  
  94.   
  95. #define NSLog(FORMAT, ...) nil  
  96.   
  97. #endif  
  98.   
  99.   
  100. #define NEED_OUTPUT_LOG                     0  
  101. #if NEED_OUTPUT_LOG  
  102.   
  103.     #define SLog(xx, ...)   NSLog(xx, ##__VA_ARGS__)  
  104.     #define SLLog(xx, ...)  NSLog(@"%s(%d): " xx, __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)  
  105.   
  106.     #define SLLogRect(rect) \  
  107.     SLLog(@"%s x=%f, y=%f, w=%f, h=%f", #rect, rect.origin.x, rect.origin.y, \  
  108.     rect.size.width, rect.size.height)  
  109.   
  110.     #define SLLogPoint(pt) \  
  111.     SLLog(@"%s x=%f, y=%f", #pt, pt.x, pt.y)  
  112.   
  113.     #define SLLogSize(size) \  
  114.     SLLog(@"%s w=%f, h=%f", #size, size.width, size.height)  
  115.   
  116.     #define SLLogColor(_COLOR) \  
  117.     SLLog(@"%s h=%f, s=%f, v=%f", #_COLOR, _COLOR.hue, _COLOR.saturation, _COLOR.value)  
  118.   
  119.     #define SLLogSuperViews(_VIEW) \  
  120.     { for (UIView* view = _VIEW; view; view = view.superview) { SLLog(@"%@", view); } }  
  121.   
  122.     #define SLLogSubViews(_VIEW) \  
  123.     { for (UIView* view in [_VIEW subviews]) { SLLog(@"%@", view); } }  
  124.   
  125. #else  
  126.   
  127.     #define SLog(xx, ...)  ((void)0)  
  128.     #define SLLog(xx, ...)  ((void)0)  
  129.   
  130. #endif  
ESP32+LED12864液晶屏实战:手把手教你显示中文与自定义图标(附完整代码) 本文详细介绍了如何使用ESP32单片机驱动带字库的LED12864液晶屏,实现中文显示与自定义图标。从硬件选型、接线方案到驱动编写、字库解析,提供了完整的实战代码与优化技巧,并最终构建了一个智能家居控制面板的完整示例项目。 阅读详情

相关推荐

初识Classic AUTOSAR开发工具链

在过去,软件和硬件之间具有很强的耦合性,阻碍了软件组件在不同硬件平台上的可移植性和重用性。而AUTOSAR作为汽车电子行业的标准,提供标准的软件接口定义,工程师可以根据需求将软件组件分配到汽车的ECU中,实现标准软件组件的可重用性。

怿星科技的博客 8093

来,看看这20个常用的宏定义!

关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用的宏定...

张巧龙的博客 1412

AJ-Report开源数据大屏存在远程命令执行漏洞

该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被攻击者利用,危害后果十分严重。

swordheart的博客 387

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...

爱党人士 2607

vTaskStartScheduler()详解

是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。

Shylock_Mister的博客 1592

基于eBPF的零侵入LLM智能体观测:AgentSight架构与实战

在分布式系统和云原生架构中,可观测性是保障应用稳定运行与高效排障的核心能力。其原理在于通过日志、指标和追踪三大支柱,从外部视角持续收集和分析系统状态,而非依赖应用内部埋点。这一技术价值在于能以统一、低开销的方式,理解复杂系统的内部行为,尤其在微服务、容器化及Serverless等动态环境中至关重要。应用场景广泛覆盖了性能监控、安全审计、故障诊断与根因分析。当我们将这一基础理念应用于当下快速发展的AI智能体领域时,便自然引出了对LLM智能体进行无侵入、系统级行为观测的需求。传统的应用层方案需要集成SDK,对闭

weixin_28696185的博客 323

C语言宏定义详解

C语言宏定义详解

qq_28576837的博客 2万+

三端口DC-DC变换器设计与光伏储能协同控制

三端口DC-DC变换器是面向分布式能源系统的关键功率变换拓扑,通过在光伏输入、储能电池与直流负载三个端口间实现动态能量分配,解决多源异步供电下的电压稳定与功率平衡问题。其核心原理基于双Boost半桥架构与双闭环协同控制,融合MPPT最大功率点跟踪与电池智能充放电管理,在保证30V高精度稳压(±0.5V)的同时,支持光伏主导供电与电池支撑供电的自动模式切换。该技术显著提升光储系统能量利用率与供电连续性,广泛应用于微电网、便携式交直流电源及离网型光储一体机等场景,是构建柔性直流配电与智能能源管理的基础硬件单元。

weixin_36431814的博客 140

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

xcsxchen 813

Ubuntu18.04安装VCS、Verdi、dve全套教程亲测(有成功截图)

通过下面十个步骤,我们就可以在ubuntu上使用vcs、verdi、dve等软件! 一、安装ubuntu系统,这个不在这里讲了,重点叫安装VCS、Verdi等软件 下面的过程一部分同其他网上流程一致,对其中部分进行修改。如果按照其他网上教程是不会成功的,本人亲测,下面是我试验网上不同文章的流程遇到的错误摸索后总结的流程,按照步骤保证可以成功运行,包括破解流程,使用时间不限制在2020年,可以自定义2030等等。 二、安装文件结构 –synopsys_installer #此程序用于安装下面三个程序。所以你想

QQ_778132974的博客 6364

23、变压器与电抗器知识详解

本文详细介绍了电力变压器的基本原理、等效电路、测试方法及多种运行方式,涵盖双绕组与自耦变压器的建模与应用。深入探讨了变压器极性判断、并联运行条件、电压调节技术,并扩展至非线性、磁滞、EMTP和高频模型,用于瞬态分析。同时阐述了地磁感应电流(GIC)的影响及对偶建模方法。最后系统介绍了各类电抗器的应用场景与特性,包括限流、无功补偿、滤波及特殊用途电抗器,全面覆盖电力系统中变压器与电抗器的核心知识。

eee77的博客 150

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...

weixin_33724059的博客 454

SAP项目中 Waterfall vs Agile 的深度对比分析背景:方法论的演进SAP项目实施方法论经历了显著的代际更替。早期以 ASAP(Accelerated SAP) 为代表,采用经典瀑

本文对比分析了SAP项目实施中瀑布模型(ASAP)与敏捷方法(SAP Activate)的核心差异。瀑布模型采用线性流程,需求固定但变更成本高;敏捷方法则通过迭代开发实现动态调整,强调最佳实践和用户持续参与。文章指出,SAP系统的复杂性使纯粹敏捷难以实施,需在标准化与定制化间取得平衡。最终建议根据项目特性选择方法论:稳定需求适用瀑布模型,变化频繁则推荐敏捷,而SAP Activate本质上是两者的结构化融合,代表未来趋势。关键在于匹配项目实际需求,而非盲目追随方法论潮流。

金牌架构师 345

iOS常用宏定义大全

iOS常用宏定义大全

落泪无痕的博客 3568

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...

weixin_30660027的博客 183

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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语言,漂亮的宏定义很重要,使用宏定义可以防止出错,

龙山三人团 1037

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...

weixin_30072631的博客 333

常用的宏定义

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

jijunyuan_11109的专栏 1288

swift中常用宏定义

github学习地址:https://github.com/potato512/SYSwiftLearning // MARK: - 设备信息 /// 当前app信息 let GetAppInfo = NSBundle.mainBundle().infoDictionary /// 当前app版本号 let GetAppCurrentVersion = NSBundle.mai

番薯大佬的专栏 4313

常用宏定义总结

常用的宏定义总结 // // PrefixHeader.pch // JNdefine // // Created by Titan on 16/3/15. // Copyright © 2016年 Aaron Wong. All rights reserved. // #ifndef PrefixHeader_pch #define PrefixHea...

weixin_30654583的博客 137

ios 常用宏定义大全

闲来无事, 根据以往项目经验,罗列一些最常用的宏定义,以供参考! 1. NSLog打印 #if DEBUG #define NSLog(FORMAT, ...) fprintf(stderr, "[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8St

雁过留声的博客 378

C/C++常用宏定义

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34357962的博客 689

宏定义亲民级别,入门级别,常用方便宏定义

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...

double_app_le的博客 396

IOS开发中常用的宏定义

有些时候,我们需要将代码简洁化,这样便于读代码。我们可以将一些不变的东东抽取出来,将变化的东西作为参数。定义为宏,这样在写的时候就简单多了。 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 #define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] )

移动开发的专栏 1411

嵌入式工程师常用的宏定义

关注+星标公众号,不错过精彩内容编排 | 李肖遥来源 |技术让梦想更伟大写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中...

strongerHuang 1182
上一篇: iOS真机调试
下一篇: 上拉下拉的原理
SMY_API
博客等级 码龄13年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值