www问答网
所有问题
C++中的什么代替了C语言中的带参数宏定义?谢谢
如题,答案是内联函数,有点无法理解
我看到有人说模板可以理解为高级点的宏,这对吗?
还请解答
C++中的什么代替了C语言中的带参数宏定义
这个的答案是啥T_T
举报该问题
推荐答案 æ¨èäº2017-09-23
æ¨¡æ¿ inlineå½æ° é½ä¸ç®æ¯å®å®ä¹
é½ä¸è½ç®å®å ¨ä»£æ¿å®
æ¯å¦inline å½æ° æ¯å¦è¢«ç´æ¥æ¿æ¢ è¿æ¯ä½ä¸ºæ®éå½æ° ç¼è¯å¨ä¼èªå·±å¤æç èå®æ¯æ æ¡ä»¶æ¿æ¢
æ¨¡æ¿ çèµ·æ¥åå®ï¼ä½å®é ä¸å®ä¸è¬ä¸ä¼è¢«å¸¦å ¥å°å½æ°ä¸
å³ç¼è¯çæ¶å 大å¤æ°æ¶åé½æ¯æèªå·±ç符å·ç
æç§ä¹¦çè¯ çæ¡å°±æ¯å èå½æ°äº
è¿ä¸ªæ¯å¯ä¸ä¸ä¸ªC++ä¸ å¯ä»¥ä¸äº§çå½æ°æ¬èº«ç¬¦å· èæ¯å¨ç¼è¯çæ¶åå¯ä»¥æ¿æ¢å°ä¸»è°å½æ°ä¸çè¯å¥ç±»å
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://www.wendadaohang.com/zd/AWW553K5AW431413d4d.html
其他回答
第1个回答 2023-04-26
#N表示字符串拼接,也就是不要把N当作变量,而是字符串。
此外还有用法:##变量拼接 #@变量转字符
简单的说就是用一个短的名字来代表一个长的字符串.
例如:#define PI 3.121459
程序中计算某面积时:2*3.121459*R,写为这样,是不是很麻烦呢,
可以定义个宏#define PI 3.121459
用2*PI*R代替。方便,不易错!
第2个回答 2015-05-08
#define 代替了 typedef
第3个回答 2015-05-08
只能说是类似,但是不一样的
第4个回答 2023-05-04
用 const
相似回答
C语言中
,
宏
替换的替换规则
答:
简单来说:宏定义又称为宏代换、宏替换
,简称“宏”。宏替换是C/C++的预处理中的一部分,在C++标准中有4条规则来定义替换。规则1:实参替换。本条规则描述带参数的宏的替换过程。对于宏定义中的形参,在替换列表中,如果不是作为#或##的操作数,那么将对应实参完全 展开(相当于对实参进行求值),然后将...
C++中
,
什么
是隐式内联函数?能举个例子吗
答:
在c++中内联函数是对宏定义一种改造
,因为利用内联函数取代宏定义得好处是:1、可进行类型安全检查或自动类型转换、例如:在c语言中,常用预处理器语句#define来代替一个函数定义。例如:define MAX(a,b) ((a)>(b)? (a):(b))该语句是在程序中每个出现Max(a,b)函数调用得地方,都被后面得表...
C++
宏定义
的函数如何调用
答:
2 宏定义不会产生栈操作,而是直接将宏函数内容替换到调用位置。所以对于参数要格外小心。在C++中,
内联函数(inline)的出现就是取代宏函数的
,相对宏函数,内联函数更不容易出错,也更容易理解。所以在C++中,宏函数已经用的很少了。
c++
预处理命令
有什么
用? 如#include "stdafx.h"是什么意思?
答:
程序设计语言的预处理的概念:在编译之前进行的处理。
C语言的
预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。1.不
带参数的宏定义
:宏定义又称为宏代换、宏替换,简称“宏”。格式:define标识符 字符串 其中的标识符就是所谓的符号常量,也称...
C++
宏
是
什么
答:
C++
宏定义
将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来
代替
,C++的三个主要的预处理命令之一(
C语言的
预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头)。定义的格式有如下几种:define <宏名> <宏体> 其中, <宏...
C/
C++宏定义
可不可以传入
参数?
答:
define P(a,b,
c
,d,e,f,g...)参数可以随便设,宏定义其实是一个预处理替换,只是你要将对应
的参数
执行正确的操作。在
C++中宏定义
一系列简单操作的话可以用inline函数来替换,编译器对inline函数的处理是把接受
了参数
的inline函数的函数体和目标代码进行替换,有点像宏但比宏安全。例如:#define P(...
...可以在函数
参数
的使用中部分取代
C语言中
指针?
答:
C++语言中
增加了引用(Alias), 引用就是相当于一个变量的小名,他们共用一个内存地址。但是它不能称之为数据类型。比如以下 void swap(int a, int b){ int t = a;a = b;b = a;} 这样的代码是不能达到实参交换的效果。void swap(int *a, int *b){ int t = *a;a = *b;b = t;...
在
C++中
#define的作用是
什么?
答:
在C或
C++语言中
,“宏”分为
有参数
和无参数两种。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用
宏定义中的
字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序
中的宏定义
命令完成的。宏代换是由预处理程序自动完成的。宏定义的作用范围...
C++
面试题汇总
答:
C语言中
用
带参数的宏定义
,
C++中
用inline 生命周期不同 空间 周期 局部变量 函数调用时创建,结束时销毁。static除外 局部变量不具有外部链接,全局变量 全局变量 : 静态数据区 局部变量: 放在栈区 malloc、free是C++/C语言标准库,new、delete是C++运算符。 注意:new、delete不是库函数; malloc/free 无...
大家正在搜
带参数的宏定义与函数有什么不同
c语言带参数的宏定义
C语言中宏定义做什么
带参数的宏定义的一般格式
带参数的宏定义与函数
c语言中的宏定义
c语言宏定义和宏替换
有参数的宏定义就是函数
c语言宏定义函数
相关问题
c++语言怎么使用带参数的宏定义实现变量的互换
c++用什么代替参数宏
C语言中的#DEFINE在C++下是用什么代替的?
C语言 有参数宏定义
C语言中带参数的宏定义问题
JAVA用什么代替C/C++中的宏定义
c++:对取两个数的最大值的逻辑,做一个带参数的宏定义,然后...
C++ 中define(宏定义) 各种用法(含特殊),小举个...