当前位置: 首页 > news >正文

常用的C语言宏定义

防止头文件被重复包含

#ifndef CONDEF_H
#define CONDEF_H/* 头文件内容 */#endif

重新定义数据类型,防止由于各种平台和编译器的不同而产生的类型字节数差异,方便移植

typedef unsigned char boolean;     /* Boolean value type. */
typedef unsigned long int uint32;  /* Unsigned 32 bit value */
typedef unsigned short uint16;     /* Unsigned 16 bit value */
typedef unsigned char uint8;       /* Unsigned 8 bit value */
typedef signed long int int32;     /* Signed 32 bit value */
typedef signed short int16;        /* Signed 16 bit value */
typedef signed char int8;          /* Signed 8 bit value */

得到指定地址的一个字节或字

#define MEM_B( x ) ( *( (byte *) (x) ) )
#define MEM_W( x ) ( *( (word *) (x) ) )

求最大值和最小值

#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
#define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )

将一个小写字母转换为大写字母

#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )

返回数组元素的个数

#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )

相关文章:

  • 阿里云国际版无法远程连接Windows服务器的排查方法
  • ACMMM 2024 ACM International Conference on Multimedia
  • 前端知识(十三)——JavaScript监听按键,禁止F12,禁止右键,禁止保存网页【Ctrl+s】等操作
  • 【Qt5】QVersionNumber
  • Mysql分布式集群部署---MySQL集群Cluster将数据分成多个片段,每个片段存储在不同的服务器上
  • 基于FPGA的视频接口之高速IO
  • Android渲染-AHardwareBuffer
  • 【Go-自学版】03-即时通信系统1
  • win 10 hp hotkey uwp service占用内存高解决方法
  • 班级管理的重要性
  • 关于加密解密,加签验签那些事
  • 数据库常用锁
  • j1冒个泡-排序的演变--扩展题
  • 四年编程成长总结
  • 人工智能|网络爬虫——用Python爬取电影数据并可视化分析
  • tensorflow学习笔记3——MNIST应用篇
  • 从0实现一个tiny react(三)生命周期
  • 对象管理器(defineProperty)学习笔记
  • 高程读书笔记 第六章 面向对象程序设计
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端面试题总结
  • 如何编写一个可升级的智能合约
  • 如何设计一个微型分布式架构?
  • 微信小程序--------语音识别(前端自己也能玩)
  • 责任链模式的两种实现
  • nb
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​Python 3 新特性:类型注解
  • #每日一题合集#牛客JZ23-JZ33
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)Java 简介
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C语言)共用体union的用法举例
  • (java)关于Thread的挂起和恢复
  • (汇总)os模块以及shutil模块对文件的操作
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.02.29:UCOSIII第二节
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)德国人的记事本
  • *** 2003
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .bat批处理出现中文乱码的情况
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .net 托管代码与非托管代码
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET简谈设计模式之(单件模式)
  • @Autowired 与@Resource的区别
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [AIGC 大数据基础]hive浅谈
  • [Android Studio 权威教程]断点调试和高级调试
  • [Codeforces] combinatorics (R1600) Part.2
  • [DM复习]Apriori算法-国会投票记录关联规则挖掘(上)