问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

中文转拼音宏定义函数怎么写

发布网友 发布时间:2022-04-26 17:24

我来回答

1个回答

热心网友 时间:2023-10-17 03:03

在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。
我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义:
#define MAX( a, b) ( (a) > (b) (a) : (b) )
其次,把它用函数来实现:
int max( int a, int b)
{
return (a > b a : b)
}
很显然,我们不会选择用函数来完成这个任务,原因有两个:首先,函数调用会带来额外的开销,它需要开辟一片栈空间,记录返回地址,将形参压栈,从函数返回还要释放堆栈。这种开销不仅会降低代码效率,而且代码量也会大大增加,而使用宏定义则在代码规模和速度方面都比函数更胜一筹;其次,函数的参数必须被声明为一种特定的类型,所以它只能在类型合适的表达式上使用,我们如果要比较两个浮点型的大小,就不得不再写一个专门针对浮点型的比较函数。反之,上面的那个宏定义可以用于整形、长整形、单浮点型、双浮点型以及其他任何可以用“>”操作符比较值大小的类型,也就是说,宏是与类型无关的。
和使用函数相比,使用宏的不利之处在于每次使用宏时,一份宏定义代码的拷贝都会插入到程序中。除非宏非常短,否则使用宏会大幅度增加程序的长度。
还有一些任务根本无法用函数实现,但是用宏定义却很好实现。比如参数类型没法作为参数传递给函数,但是可以把参数类型传递给带参的宏。
看下面的例子:
#define MALLOC(n, type) \
( (type *) malloc((n)* sizeof(type)))
利用这个宏,我们就可以为任何类型分配一段我们指定的空间大小,并返回指向这段空间的指针。我们可以观察一下这个宏确切的工作过程:
int *ptr;
ptr = MALLOC ( 5, int );
将这宏展开以后的结果:
ptr = (int *) malloc ( (5) * sizeof(int) );
这个例子是宏定义的经典应用之一,完成了函数不能完成的功能,但是宏定义也不能滥用,通常,如果相同的代码需要出现在程序的几个地方,更好的方法是把它实现为一个函数。
下面总结和宏和函数的不同之处,以供大家写代码时使用,这段总结摘自《C和指针》一书。

example:
define的单行定义
#define maxi(a,b) (a>;b?a:b)
define的多行定义

define可以替代多行的代码,例如MFC中的宏定义(非常的经典,虽然让人看了恶心)

#define MACRO(arg1, arg2) do { \
\
stmt1; \
stmt2; \
\
} while(0)
关键是要在每一个换行的时候加上一个 "\ "

//宏定义写出swap(x,y)交换函数
#define swap(x, y)\
x = x + y;\
y = x - y;\
x = x - y;

zigbee里多行define有如下例子

#define FillAndSendTxOptions( TRANSSEQ, ADDR, ID, LEN, TxO ) { \
afStatus_t stat; \
ZDP_TxOptions = (TxO); \
stat = fillAndSend( (TRANSSEQ), (ADDR), (ID), (LEN) ); \
ZDP_TxOptions = AF_TX_OPTIONS_NONE; \
return stat; \
}
excel中把汉字转换成拼音

2、快捷键alt+f11,调出宏设置页面,选择插入中的模块选项3、在出现的模块面板中,定义一个getpy的方法,将如下代码粘贴进去Function pinyin(p As String) As Stringi = Asc(p)Select Case iCase -20319 To -20318: pinyin = a Case -20317 To -20305: pinyin = ai Case -20304 To -20296: pinyin = an ...

excel字符串匹配函数

仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击96步自动完成表格匹配,无需手写公式,免费使用!

如何在excel中把汉字转换成拼音

1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表;2.执行“工具→宏→Visual Basic编辑器”命令(或者直接按“Alt+F11”组合键),进入Visual Basic编辑状态;3.执行“插入→模块”命令,插入一个新模块。再双击插入的模块,进入模块代码编辑状态;4.将代码输入其中; Function pinyin(p As String) As String i...

以一个实例说明在excel中根据A列汉字自动在B列生成拼音字母的方法

Next PinYin = Trim(PinYin)End Function 第二步,在空白列,比如F2单元格,输入公式:=PinYin(A2),就可以在F2单元格得到A2单元格汉字的拼音。然后下拉复制完成A列所有的汉字转拼音。提示:公式中的“PinYin”就是第一步自定义函数的名称。第三步,在B2单元格输入公式:=LEFT(F2,FIND(" ",F2)-1...

excel中汉字转拼音的宏如果需要拼音是大写还是首字母

转完后,可以用PROPER函数处理一下,比如转的结果在A2:A99单元格,可以在B2单元格输入如下公式,然后下拉复制至B99单元格即可。=proper(a2)

excel 如何把”汉字“转换为”拼音首字母“,切记为”拼音首字母...

1、打开相应的Excel文件,按“Alt+F11”组合键,弹出“Visual Basic编辑器”如下图:2、鼠标点击“Visual Basic编辑器”菜单栏的“插入”选项,选择下拉列表里的“模块”,插入“模块”,如下图:3、将下面的代码复制粘贴到里面:Function getpychar(char)tmp = 65536 + Asc(char)If (tmp >= 45217...

EXCEL中能否直接把中文转换成拼音?

一、首先打开Excel软件,然后按Alt+F11打开Viaual Basic编辑器,点击工具栏“插入”,选项内点击“模块”。二、这时把准备好的中文转拼音函数粘贴入该模块下,然后就可以关闭掉Viaual Basic编辑器。三、回到Excel界面在需要转换的单元格内输入中文转拼音的公式(这里需要根据下载的函数来输入对应的公式,如下...

怎么把EXCEL里的中文名字变成拼音的,且首字母要大写。

具体操作方法如下:所需材料:Excel、中文转拼音首字母大写函数。一、首先打开Excel,然后按下Alt+F11打开Viaual Basic编辑器,点击插入,下拉菜单内点击模块。二、把准备好的汉字转拼音函数粘贴进来,需要注意的是,从网络上复制的函数每一行都会有一个回车,在模块内需要把段落之间的空行全部清除,段落前面...

如何将excel中的中文人名,自动更改为拼音形式,但不要音标的那种?_百度...

打开Excel->工具->宏->Viaual Basic编辑器 在弹出来的窗口中对着VBAproject点右键->插入->模块 下面会出现一个名为"模块1",点击 在右边的空白栏中粘贴以下内容:Function getpychar(char)tmp = 65536 + Asc(char)If (tmp >= 45217 And tmp <= 45252) Then getpychar = "A"ElseIf (tmp >...

excel中如何批量转换姓名成全部拼音?要求不使用宏代码,要函数公式。

Function pinyin(ByVal X As String) As String Dim i As Integer Const hanzi = "啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝座ABCDEFGHJKLMNOPQRSTWXYZZ"If X = "座" Then pinyin = "Z"For i = 1 To 23 If Asc(X) >= Asc(Mid(hanzi, i, 1)) And Asc(X) < Asc...

如何在excel中把汉字转换成拼音

一、打开Excel,然后按Alt键+F11键打开Viaual Basic编辑器,点击工具栏插入,下拉菜单内点击模块。二、打开模块1后,在下方空白处粘贴入准备好的中文转拼音函数,然后关闭Viaual Basic编辑器。三、回到Excel界面,在任意一空白单元格内输入“=getpy(单元格)”,按回车键即可得到该单元格的拼音。四、最后...

宏定义能定义函数吗 宏定义写在函数里 宏定义必须写在函数 有参数的宏定义就是函数 带参数的宏定义与函数 函数宏定义 宏定义实现函数 宏定义不能出现在函数内部 宏定义函数调用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑连接电视会闪 ...不用方程式,求详解!爸爸买了一些橘子,全家人第一天吃了这些橘子的... HDMI连接电视时 如果把分辨率调到电视全屏的话,电视3D设置打不开,如果... 为什么投屏突然不可以了呢? 黑木耳不能和什么一起吃 黑木耳的搭配禁忌 黑木耳不能和什么同吃 你知道吗 适合摆地摊的小商品有哪些 适合摆地摊的小商品推荐 摆地摊有什么项目推荐 适合摆地摊的小商品 适合摆地摊的小商品列述 为什么我玩魔兽争霸会花屏,有边框的地方像是在都动,屏幕花花的有小点点... 原神纪行武器选哪个? 原神香菱值得培养吗 胡桃适合哪把平民武器 《原神》钟离圣遗物搭配辅助是什么? 欧阳娜娜现身机场被男子纠缠,明星如何保证个人安全? 一阶护魔之杖和五阶决斗之枪哪个好? 滴水观音能不能过冬? 原神哪个npc有三星长枪? 滴水观音在冬天要怎么养护 香菱圣遗物配什么 蒋大为商演随行保安近20人,你对明星带保安怎么看? 在冬天如何养滴水观音? 张彬彬机场被安保架着走太有喜感了,明星的出行都要有保安陪同吗? 滴水观音冬天怎么养 滴水观音冬天养护方法 想问下演唱会保护艺人明星的是保安人员吗?还是什么? 滴水观音冬天要放到室内吗?冬天如何养护 支付宝怎样开启免密支付 俞灏明拍戏出现意外,在工作中,要如何保护自己? 冬天,滴水观音能放在水里养吗,要注意哪些? EXCEL中添加了汉语转拼音的宏模块,部分汉字无法转化为拼音,部分转换的拼音不准确,求解? EXCEL 汉字转拼音 在EXCEL中怎样批量将汉字转为拼音 梦见吃韭菜馅饺子 EXCEL中怎么把汉字变成拼音,并取拼音的第一个大写字母 各位大佬,有知道怎么用宏把表格里的汉字姓名转化成全拼音的?网上的代码试了但是不管用,表格中还是# Excel 把中文姓名 转换成 汉语拼音 求宏脚本程序!谁能给我提供宏文件? 梦见吃韭菜馅的饺子里边还有一个虾 梦见已故的父亲给自己带韭菜馅饺子吃 微信小程序怎么代理,如何玩转微信小程序 梦见和死去的爷爷奶奶一起包饺子,韭菜馅鸡蛋馅的,我还说出了很多水也抱不住啊,改蒸饺吧!爷爷说行 怎么实现微信小程序页面搭建 世界名表品牌排行榜 我比较爱吃韭菜鸡蛋馅饺子,可以吗 国五小卡之星1d19.116马力的怎么样 福田货车小卡之星3.3米对比江铃国五后单轮3.1米如何选择 世界名表牌子排行榜 小卡之星2国五柴油版怎么样 福田国五款小卡之星1机虑怎么拆 2017年12月上户的时代小卡之星2柴油车是国五排放吗?