#define相关语法

2023-11-12

跨行的宏定义

跨行宏定义使用反斜杠\连接

#define YW_GPIO_ERR(...) do{\
    printk("[yw_gpio][err] [%d] ",  __LINE__);\
    printk(__VA_ARGS__);\
}while(0)

"#"使用

功能:用来把参数转化成字符串

示例代码

#define P(A) printf("%s:%d\n",#A,A);
int main(int argc, char **argv)
{
        int a = 1;
        P(a);
        system("pause");
}

在这里插入图片描述

__VA_ARGS __

是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。
实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。

#include<stdio.h
#define YW_GPIO_ERR(...) do{\
    printf("[yw_gpio][err] [%d] ",  __LINE__);\
    printf(__VA_ARGS__);\
}while(0)

int main(void)
{
        YW_GPIO_ERR("out of ioctl_tab \n");
        return 0;
}

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

#define相关语法 的相关文章

随机推荐

  • QT实现中英文键盘

    使用Qt中实现中英文键盘 支持各种linux嵌入式设备 实现思路 需要一个中文字体库 将字体库加载到一个Hash容器 字母和拼音作为key值 对应的中文作为value值 核心代码 include UKeyBoard h include ui
  • CSDN-markdown编辑器

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • 使用高德地图 vue-amap 中遇到的问题

    1 搜索组件进行搜索的时候 无论搜索哪个城市 地图一直固定在一个城市 我的是深圳
  • 基于Docker环境安装ElasticSearch

    1 搜索技术 搜索技术在我们日常生活的方方面面都会用到 例如 综合搜索网站 百度 谷歌等 电商网站 京东 淘宝的商品搜索 软件内数据搜索 我们用的开发工具 如Idea的搜索功能 这些搜索业务有一些可以使用数据库来完成 有一些却不行 因此我们
  • 【Java进阶篇】—— File类与IO流

    一 File类的使用 1 1 概述 File 类以及本章中的各种流都定义在 java io 包下 一个File对象代表硬盘或网络中可能存在的一个文件或文件夹 文件目录 File 能新建 删除 重命名 文件和目录 但 File不能访问文件内容
  • 数据结构视频教程 -《[北风网]C#版数据结构与算法高级教程》

    整个视频打包下载地址 史上最全的数据结构视频教程系列分享之 北风网 C 版数据结构与算法高级教程 转载请保留出处和链接 更多优秀资源请访问 我是码农 数据结构是计算机存储 组织数据的方式 数据结构是指相互之间存在一种或多种特定关系的数据元素
  • Redis可视化工具无法连接Redis(安装在服务器上面)的解决方案

    redis可视化工具连接安装在阿里云上面的redis时 一直连接不上 你可以按下面三步去完美解决 第一 确保redis正常启动 我这主要解决redis可视化工具无法连接redis哈 具体redis安装我就不讲了奥 首先通过指令 cd usr
  • 区块链共识机制技术一——POW(工作量证明)共识机制

    什么是共识机制 所谓 共识机制 是通过特殊节点的投票 在很短的时间内完成对交易的验证和确认 对一笔交易 如果利益不相干的若干个节点能够达成共识 我们就可以认为全网对此也能够达成共识 区块链作为一个去中心化的分布式账本系统 然而在实际运行中
  • RPC通信基本原理 -- 浅析RPC远程过程调用基本原理

    一 RPC基本概念 1 1 RPC简介 RPC 的全称是 Remote Procedure Call是一种进程间通信方式 RPC只是一个概念 而不是具体的协议或框架 它允许程序调用另一个地址空间 通常是共享网络的另一台机器上 的过程或函数
  • 应用布尔盲注来爆库(1)

    先上道练习题Less 8 打开sqli labs项目的练习题Less 8 http 192 168 3 2 sqli labs Less 8 然后输入id 1参数 可以得到以下信息 输入有效id 1时 只提示成功 You are in 没有
  • 基於RISC-V QEMU 仿真運行Linux 系統環境搭建

    前言 文章詳細說明如何從堶零開始基於RISC V QEMU 仿真運行Linux 系統環境搭建 是Linux 小白入門教程不二之選 歡迎留言討論 轉發請注明原文出處 1 準備QEMU 仿真環境 RISC V 64bits 安裝包下載地址 ht
  • 【华为OD机试】猴子爬山 (C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 红米Note 4超简单刷成开发版获取ROOT权限的流程

    小米的设备不同手机型号一般miui论坛都提供两个不同的系统 可分为稳定版和开发版 稳定版没有提供root超级权限管理 开发版中就开启了root超级权限 较多时候我们需要使用的一些功能强大的应用 都需要在root超级权限下工作 举个栗子我们团
  • python 列表(list)排序

    使用python的sorted函数 可对列表进行排序 该函数默认从小到大排序 1 列表中为普通元素 a 80 85 90 100 a sorted a sorted函数默认从小到大排序 print a 输出结果 80 85 90 100 倒
  • RIA项目失败的教训

    作者 Abel Avram 译者 崔康 发布于 2009年7月22日 上午11时6分 社区 Architecture Java 主题 可用性 用户界面 RIA 富客户端 桌面 EffectiveUI公司主席Anthony Franco最近做
  • MySQL Note

    一 MySQL动作关键字 1 1 create 用途 创建index procedure function schema table 语法 index create unique fulltext spatial index index n
  • Vim知识详解

    这是一个笔记 Shift Lock 大小写锁定键没有按下 正常模式 按ESC处于正常模式 移动光标 q 丢弃改动并退出 x 删除当前字符 i 在当前光标插入文本 a 在句子最后添加文本 wq 保存文件以退出 dw 从光标处删除至一个单词的末
  • Matlab实现电动汽车系列仿真(附上多个完整仿真源码+数据)

    Matlab是一种功能强大的数学软件 可以用于实现各种仿真模型和算法 在本文中 我们将介绍如何使用Matlab来实现电动汽车系列仿真 说明 首先 我们需要定义电动汽车的物理模型 电动汽车的物理模型可以包括电池 电动机 传动系统和车辆动力学模
  • Microsoft Store打不开解决办法

    1 打开 运行 输入 inetcpl cpl 或者 WINDOWS R 键 输入 inetcpl cpl亦可 2 点开高级往下拉 勾上 使用TLS 1 2 选项 或者点还原高级设置 3 打开Microsoft Store刷新页面可成功打开
  • #define相关语法

    跨行的宏定义 跨行宏定义使用反斜杠 连接 define YW GPIO ERR do printk yw gpio err d LINE printk VA ARGS while 0 使用 功能 用来把参数转化成字符串 示例代码 defin