有关宏的一个简单的问题

不太了解宏,写了一个宏的简单程序

#include <stdio.h>
//#include <iostream.h>

#define pitch no_a.name

struct node
{
   int a;
   char *name;
};

main()
{
 struct node no_a;
 no_a.a=9;
 no_a.name="ni rang wo zm zuo a /n";
 printf("%s",pitch);
 //cout << pitch;

 

其实宏就是一个简单的展开,在c++中最好还是使用const和inline函数来代替宏变量和宏函数,因为宏会产生边际效应。

在编译此程序的过程中还要注意两点

(1)编译器并不区分宏变量和宏函数,因此定义宏变量和宏函数的时候不能重名,如

#define Max 100

#define Max(a,b) ((a>b)?a:b)

这样的话编译器就会提示重复定义

(2)在C 语言中,声明结构体变量的时候,应加上关键字struct 如:struct node no;

如果不带,编译器就会提示node没有声明

但是c++中则无此限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值