Printf()函数简单实现

自写Usart_Printf()串口发送函数实现方法详解 STM32串口发送函数printf()函数Usart_Printf()函数 注意:本文参考STM32F10XXX数据手册 printf()函数 printf函数是C自带库函数,用C都非常的熟悉,STM32编程大多也用C,那么其是否也能够用printf()函数? 答案是肯定的,C所有标准库函数都可以在STM32编程中使用 问:如何在STM32中使用printf()函数将信息通过串口打印发送? 答:在你的代码前加上以下代码即可 //printf输出与USARTy关联,能够传参 #if 1 #pragma imp 阅读详情
/************************************************************************/
/* coder:huifeng00
/* 时间:2010-5-23
/* 功能:简单实现自己的printf()函数,识别%d,%s,%c
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

void myprintf(const char *format, ...)
{
va_list ap;
char c,nc;

va_start(ap, format);
while (c = *format++)
{
if (c == '%'&&(nc=*format)!='/0')
{
format++;
switch(nc)
{
case 'c': //%c
{
/*为了内存对齐,所以要写int*/
char ch = va_arg(ap, int);
putchar(ch);
break;
}
case 's': //%s
{
char *p = va_arg(ap, char *);
fputs(p, stdout);
break;
}
case 'd'://%d
{
int data = va_arg(ap,int);
char buf[16];
itoa(data,buf,10);
fputs(buf,stdout);
break;
}
default:
putchar('%');
putchar(nc);
}
}
else
{
putchar(c);
}
}
va_end(ap);
}

int main(void)
{
int i = 100;
char ch ='n';
char data[] = "nihao";
myprintf("%d/n%c/n%s/n", i,ch, data);
return 0;
}

主要实现了%s,%d,%c。
简单实现printf函数 使用可变参数列表简单实现printf函数 代码如下: my_print.h /* ****************** 头文件 ****************** */ #ifndef __PRINT_H__ #define __PRINT_H__ #define _CRT_SECURE_NO_WARNINGS #include #include #i 阅读详情

相关推荐

AI在个性化营养方案制定中的应用:从代谢组学到膳食规划

本文章的主要目的是全面探讨AI在个性化营养方案制定过程中的应用,从代谢组学的数据收集与分析,到基于这些数据制定合理的膳食规划。范围涵盖了AI技术在该领域的核心概念、算法原理、数学模型、实际项目应用,以及相关的工具和资源推荐等方面。旨在为科研人员、营养师、软件开发人员等提供一个系统的知识体系,帮助他们更好地理解和应用AI技术来实现个性化营养方案的制定。核心概念与联系:介绍AI、代谢组学和膳食规划的核心概念,以及它们之间的相互联系,并通过文本示意图和Mermaid流程图进行展示。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1032

【嵌入式C语言】可变参数 va_start、va_arg、va_end、va_list、stdarg.h 库详解

可变参数详解 printf( )是我们在编程中避不开的函数,之前我们研究了printf( )的实现原理,初步了解了printf( )函数在库中是借用putchar( )来进行实现输出的,但是还有一个问题我们上一篇文章没有解决,那就是printf( )中的可变参数是怎么实现的呢,如何去使用可变参数完成我们自己的输出函数呢? 让我们再来看一眼printf( )的长相,在stdio.h文件中他是这样声明的 int printf(const char *format, ...) printf( )中分为两种参数,

物联网从你我开始 4107

Cadence SIP Layout 简单教程-第一章

以摄像头模组软硬结合板为例,描述layout的整个完整过程,从而掌握基本技能。 第一章 准备工作 第一节 原理图不用说layout前需要绘制原理图,原理图不在本文讨论范围内,所以列为准备工作。 需要特别说明的是,绘制原理的最终目的是导出网络表,网络表中的重要参数footprint是让layout软件选择正确封装的关键,所以这里讲解一下原理图设置footprint的位置。在原理图中双击零件,...

whp1920的博客 1万+

printf实现

printf是c语言下非常常用的一个函数,几乎每个程序员在一开始第一个学的函数应该就是printf吧! 今天来实现一个printf函数,虽然printf是我们常用的函数,但实现起来其实还是蛮考基础的! 下面一步一步带大家实现: 一. 编写一个入口函数并导入标准io头文件 #include&lt;stdin.h&gt; int main(){ } 二. printf函数准备工作 前言...

17岁boy的博客 5635

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 903

BEVFusion(mit)最强环境安装,部署复现

BEVFusion作为一项经典的工作,值得深入探索。然而由于配置环境比较麻烦,耽误了一些时间。经过几次成功配置之后,有了一些总结,在这里记录下来,供大家参考避坑,也方便自己下次查阅。

qq_45783225的博客 1万+

printf函数的实现方法

printf函数的实现

qq_39625728的博客 1635

2.设置Salesforce开发环境

Salesforce DX:salesforce Developer Experience (salesforce开发人员体验)LWC:Lightning Web Component(注意首字母是大写的,是一个概念,小写的话有组件本身的含义)CLI:Command Line Interface(命令行界面)version control system (VCS):版本控制系统。

nihaixiao的博客 2198

汇编语言综合试验5 - 用C语言实现一个简单的printf函数

本题是王爽老师《汇编语言(第4版)》的压轴题,具有一定难度。笔者基于自己编程中的踩坑经历,并结合大佬的解题思路,写成博客。这个试验设计得非常好,如果有心从头到尾理清逻辑,将会极大加深对C和汇编关系的理解。

qq_34719392的博客 1948

海思方案定制hi3531dv200/SS528 DVR方案解析:从硬件选型到编解码实战应用

海思方案,Hi3518EV100,Hi3518CV100,Hi3515CV100,Hi3516CV100,Hi3516ECV100,Hi3516D,Hi3516A,Hi3519,Hi3520D,Hi3521A,Hi3535,Hi3531,Hi3536,Hi3536C,Hi3536D,Hi3518EV200,Hi3518EV201,Hi3520DV200,Hi3516CV200,Hi3516CV300,Hi3516AV200,Hi3520DV300,Hi3519V101,sd3403,hi3519av200

1585

Android11原生设置屏幕亮由Gamma变化改为线性变化

从Android9 开始屏幕亮度调解变成非线性变化,这样的话就会出现 之前亮度变化很小,到后面时变化亮度很快; 修改为线性变化,只需要修改 ./frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache L

Android 4926

【C语言指南】printf()函数详解

printf 函数在输出格式 format 的控制下,将其参数进行格式化,并在标准输出设备(显示器、控制台等)上打印出来。printf函数是C语言最常用且功能强大的库函数,搞明白printf函数能在工作中做到事半功倍的效果

倔强的石头的博客 3万+

什么是DHCP Snooping?如何配置DHCP Snooping?

功能描述防护类型防御伪造 DHCP 服务器、避免地址冲突、增强网络安全性使用场景企业园区网、校园网、大型局域网配合机制IP Source Guard、DAI、防止 ARP 欺骗部署难度⭐⭐(简单)“DHCP Snooping,是内网 DHCP 安全防护的第一道门神。” 🛡️。

网络技术联盟站 1267

简单实现printf()函数功能

printf函数

xc_123的博客 578

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言中可变参数函数的实现——printf

C语言中可变参数函数的实现(`printf()`的实现)

ahundredmile的博客 1644

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

STM32单片机极简方法 使用宏定义 代替复杂的重定向printf()函数,实现串口打印。(HAL库例程)

对于 printf() 函数我们并不陌生,初学C语言使用的第一个函数,其作用是在终端打印显示格式化字符串。 但是如果我们使用的是单片机运行C语言代码,如果不经任何修改直接使用 printf() 函数,结果是什么现象都没有。要想使用这个函数,常规方法是重定向 printf() 函数,结合串口来打印到串口助手上位机。这里的重定向就非常复杂了,你需要懂 printf() 函数内部实现机制。。。。。(参...

wu10188的博客 2826

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

利用printf()实现简单动画,触界反弹的球

利用printf()实现简单动画。本程序实现的是一个运动过程中触界反弹的球,在程序演示的过程中,ESC键可以随时终止程序. 当然你可以利用system("cls");实现动画效果,这里采用GotoXy()函数,然后利用背景色的空格擦掉痕迹作图,来实现动画效果

松子茶的专栏 3695

怎样在TI stellaris lm3sxxx 程序中使用C语言printf()函数进行串口输出

串口输出 UART 输出重定向 stellaris lm3sxxx

Fortware的专栏 1466

模拟实现printf函数

模拟实现 printf()函数 如果要想解决这个问题 ,就要 知道一个知识点 ,可变参数列表  , 可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件中,它是标准库的一部分。这个头文件声明 个类型va_list 和三个宏va_start、va_arg和va_end。 转到定义处 查看一下这几个宏和类型  typedef char * va_li

晓东的博客 744

printf的实现

研究printf的实现,首先来看看printf函数的函数体   int printf(const char *fmt, ...)   {    int i;    char buf[256];       va_list arg = (va_list)((char*)(&fmt) + 4);     i = vsprintf(buf, fmt, arg);    write(buf

my_et的专栏 1210

printf()函数详解

本文转载自:https://blog.youkuaiyun.com/qq_25544855/article/details/81146800 1. printf()简介 printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。 函数原型: int printf ( const char * format,...

weixin_43433801的博客 1万+

print()、printf() 和 sprintf()三者之间的区别与联系

在 C 语言中,有三种常用的输出函数:print()、printf() 和 sprintf()。虽然它们都可以用来输出字符串,但是它们的使用方法和输出方式是有区别的。下面,我们将介绍这三个函数的区别和用法。

qq_50635297的博客 1万+

printf()函数的全面介绍及用法——简单易懂

printf()函数介绍及详细用法:三种格式控制字符(教你怎么输出)——格式字符、转义字符、普通字符;输出的示例;指定宽度输出;保留小数位数输出;printf()函数中的格式修饰符,以及printf()函数的返回值类型及内容。

wcj_______的博客 9616

printf()函数和scanf()函数

本文介绍了C语言中的两个基础库函数printf()和scanf()的基本用法。printf()用于格式化输出,支持多种占位符和格式控制;scanf()用于读取用户输入,需要注意变量地址传递和不同类型数据的读取方式。文章详细讲解了这两个函数的参数用法、占位符类型、格式控制选项,以及常见注意事项,如scanf()读取字符串时的长度限制问题。这些基础知识对于C语言初学者理解和掌握标准输入输出操作具有重要意义。

pusue_the_sun的博客 945

printf()函数以及scanf()函数

就是程序运行到这个语句时,会停下来,等待用户从键盘输入,用户输入数据,按下回车键后,scanf()函数就会处理用户的数据,将其存入变量。

pmwjdf的博客 1118
上一篇: C语言注释风格
下一篇: 蚁群算法代码(C++)
echo_qiang
博客等级 码龄16年 45粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值