首页 > 其他分享 >日志打印相关代码

日志打印相关代码

时间:2022-12-11 21:57:26浏览次数:54  
标签:va 代码 打印 list 参数 mode param1 日志 指针

1. 类似printf函数的实现原理

1. int printf(const char *format, ...);
         format是固定参数,是参数1          … 是可变参数
2. 相关宏    
(1)va_list 就是一个char*指针, 即:typedef char * va_list; (2)va_start宏 ,#define va_start(list,param1) (list = (va_list)&param1+ sizeof(param1)) 获取可变参数列表的第一个参数的地址(list是类型为va_list的指针,param1是固定参数)
(3)va_arg宏,#define va_arg(list,mode) ((mode *) (list += sizeof(mode)))[-1] 获取可变参数的当前参数的值,返回指定类型并将指针指向下一参数(mode参数描述了当前参数的类型)
(4)va_end宏 va_end(list) ( list = (va_list)0 )
清空va_list可变参数列表,防止出现野指针

 

标签:va,代码,打印,list,参数,mode,param1,日志,指针
From: https://www.cnblogs.com/dkhlaojogo/p/16974516.html

相关文章

  • 代码随想录算法训练营Day04: 24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试
    24. 两两交换链表中的节点tag:#链表#反转leetcode地址:24. 两两交换链表中的节点代码:functionswapPairs(head:ListNode|null):ListNode|null{constre......
  • tomcat打印日志乱码问题
    对于tomcat打印中文乱码问题,处理方式如下:找到tomcat安装目录下的conf目录,在里面找到logging.properties文件修改logging.properties文件中设置的编码格式,主要......
  • 打印如下图形的杨辉三角
    图形如下   代码如下1#define_CRT_SECURE_NO_WARNINGS12#include<stdio.h>3intmain()4{56intarr[11][10];//打印这种图形第0行要舍弃......
  • 217行javascript代码实现五子棋游戏
    html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"c......
  • 代码随想录算法训练营Day18|513. 找树左下角的值、112. 路径总和、106. 从中序与后序
    代码随想录算法训练营Day18|513.找树左下角的值、112.路径总和、106.从中序与后序遍历序列构造二叉树513.找树左下角的值513.找树左下角的值假设二叉树中至少有一......
  • 梦断代码阅读笔记
    我从书中发现几点我比较感兴趣的内容。第一个,乐高之梦。将程序用乐高积木一样拼接起来。对于这一点,现在很多公司都已经多多少少在用了。但是书中也提到,有很多程序员往......
  • ELK+FileBeat日志分析系统
    一、ELK日志分析系统概述1.1ELK简介ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana,它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志......
  • 领域驱动在代码层面的落地感悟
    领域驱动在代码层面的落地感悟小米有品技术团队2021年12月14日10:47 ·  阅读8981笔者杨涛12年互联网从业经验,8年技术管理经验。先后从事搜索、社交、在线......
  • 查找代码
    //实现哈希表的相关运算算法。#include<stdio.h>#include<stdlib.h>#defineMAX_SIZE100//定义最大哈希表长度#defineNULL_KEY......
  • 代码and截图
    1.babasslZUC算法代码:#include<stdio.h>#include<string.h>#include<openssl/crypto.h>#include<openssl/evp.h>intmain(intargc,char*argv[]){EVP_M......