c头文件中define的作用

2021-03-07 08:09:15 字数 2421 阅读 6292

1楼:匿名用户

宏定义 简单的字符替换 在 编译前做的替换#define three 3

int a = three;

在送编译时 替换为 int a = 3;

#define power(x) x * xint a = power(10)

在送编译时 替换为 10 * 10

注意 若为 power(5 + 3) 则替换为 5 + 3 * 5 + 3

所以宏只是简单的文本替换

*linklist 在typedef 的作用下 是lnode 的指针类型

也就是说申明lnode 指针的时候你可以用linklist p = 0;//等价于 lnode* p = 0;

new 动态分配内存空间

2楼:匿名用户

正常情况下所有的头文件都是

#ifndef ....

#define

//头文件中的内容

#endif

上面的结构是为了不使头文件出现重复包含.

另一种 :

如 #define maxnum 500

#define abs(x) ((x)>0 ? (x) : -(x)是宏.

你说的linklist是lnode的指针,而&l是linklist的引用,目的是把程序中分配的lnode返回。

new就是c中的malloc,动态分配一个lnode

3楼:匿名用户

c++中一般不用#define来定义常量或者函数

我觉得唯一用到的地方是在防止头文件重复包含的时候#ifndef...#define...#endif

你下面问的*linklist是一个lnode结构的别名,同样可以用他来创建一个lnode结构对象.

c++里最好把结构,类什么的都看成对象.

linklist &l,这里就不难理解了吧,linklist 是对象类型(一个lnode的指针),&l是参数名(等于 &(*lnode) ).

l = new lnode;

new是c++的内建方法,用来开辟内存空间.这里就是为l分配一个lnode结构那么大的内存空间.

4楼:可以叫我表哥

#define命令是c语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。

该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。

(1) 简单的宏定义:

#define 《宏名》   《字符串》

例: #define pi 3.1415926(2) 带参数的宏定义

#define 《宏名》 ( 《参数表》) 《宏体》

例: #define a(x) x

5楼:匿名用户

第一个问题:

#define是定义

宏,楼上说避免使用是什么意思,你如果说goto避免使用我很赞同,但是定义宏是个很正常的使用啊。

第2个问题:

*linklist 指针类型,在这里linklist就想int已经成为一个类型了,&l就是一种引用传参,保证传过去的是地址。

new就是开辟内存空间,比如 linklist l 只是定义了一个指针型的变量l,但是指针如果要使用必须要开辟内存空间,所以还要加上 l = new lnode();

还有不明白的m我。

6楼:匿名用户

1、*linklist是定义一个lnode的指针变量,这样定义是没有实体的,需要new的

2、linklist &l这个参数是传址参数,实际上和linklist *l这样的指针参数的意义是一样的,这样写的话调用的时候可以方便一点

3、new的意思是声明一个新实例,然后将实例的地址赋值给指针,如果你仅仅只是声明一个指针,他是没有实体的,new的话可以给他一个新的实体,这个建议参考“面向对象编程”方面的章节,在使用完毕后还需要delete掉指针以释放实体

4、#define是c/c++特有的宏定义,在使用的时候会有很多方便的地方,此外系统也会定义一些参数,如win32、_cplusplus等,再配合#ifdef等宏可以方便程序员编写和调试程序,有很大的好处

ps:我总觉得你这段程序有问题,initlist_l的参数是linklist,而new的是lnode,还有l->next应该改为l.next,只有指针参数才需要用->

7楼:匿名用户

*linklist 应是用于定义一个指针类型的变量吧,linklist &l对于调用initlist_l函数时,使用引用的方式传递参数,在initlist_l内对l的修改都会影响到实参,linklist不是一个指针,是一个数据类型.

new 是内在分配运算符,是一个操作符吧.

以上是我的理解,如有不对,谢谢指正,^&^

8楼:匿名用户

c++里面#define应该尽量避免使用

c语言中的define是什么意思,有什么作用,怎样用

1楼 匿名用户 宏定义,用于定义全局变量 如 define num 1 那么在你的程序里mun就等于1 2楼 匿名用户 c语言中, define 是一种编译预处理指令,称为宏定义指令。它后面至少空一个格,再写符号常量的名称 它属于标识符 ,再空至少一个格,写符号常量的值。进行了宏定义以后,其默认作用...

C的类库文件怎么用,如何向c#类库文件中添加类文件

1楼 匿名用户 先在项目 添加应用 浏览,找到freetextbox dll,并添加 在工具箱里右键 选项卡,找到freetextbox dll 添加控件。 你的工具箱上面就会出现freetextbox控件了,你就像使用文本框一样,一拖就可以了。 如何向c 类库文件中添加类文件 2楼 匿名用户 如图...

如何用c制作控件,控件数组,用C#如何实现把已有的控件放入控件数组中?

1楼 匿名用户 容器是自己先放上去 panel 什么的 控件数组要自己定义 比如10 个label label mylabel new label 10 mylabel 0 label1 mylabel 1 label2 mylabel 9 label10 这是实例化 然后就可以用for循环控制了 ...