当前位置: 首页 > wzjs >正文

注册自己的网站传统网站模板

注册自己的网站,传统网站模板,wordpress文章加密提示,网站建设清单宏定义是使用预处理指令#define完成的。格式为:#define 标识符 替换表达式按照习惯,自定义的宏一般采用大写字母的标识符,不过非必须。#define是个预处理指令,它会在编译前由预处理器进行处理,将代码中的标识符扩展成替…

宏定义是使用预处理指令#define完成的。格式为:

#define 标识符 替换表达式

按照习惯,自定义的宏一般采用大写字母的标识符,不过非必须。

#define是个预处理指令,它会在编译前由预处理器进行处理,将代码中的标识符扩展成替换表达式或替换其中的一部分。

例:

将MAX_SIZE定义为常量1000:

#define MAX_SIZE 1000

预处理器会将代码中出现的所有MAX_SIZE替换成常量1000,然后由编译器编译。

不过在C++中,这种定义常量的模式常被const常量替代。

const int MAX_SIZE=1000;

宏处理的替换表达式可以是任意形式,预处理器在工作时只是做替换、拼接,并不会做语法检查,

空宏与条件编译结合:

#define LARGE_ARRAY
#ifdef LARGE_ARRAY
#define MAXSIZE 60
#else
#define MAXSIZE 20
#endif
#if MAX_SIZE>50
#undef MAX_SIZE
#define MAX_SIZE 20
#else
#undef MAX_SIZE
#define MAX_SIZE 10
#endif

#undef:取消原来的定义。

宏的另外一种定义方式为:函数宏,或宏函数。

#define 标识符(参数列表) 替换表达式
#define add(a,b) a+b

宏函数add中有两个参数a,b,它会被替换为a+b,a和b会被替换为实际的参数。

#define mul(a,b) a*b

注意:mul(3,4+5)会被替换为3*4+5,因此我们需要加括号

#define mul(a,b) (a)*(b)

但使用宏函数定义函数表达式,在C++中可以被内联函数取代:

inline int mul(int a,int b)
{return a*b;
}

不容易出错,更易调试。

#和##是宏定义中常用的两个操作符。

#将符号转为字符串:

#define print(a) cout<<#a<<"="<<(a);

这条定义中定义了一个print的宏函数,预处理器遇到这样的宏,会将#a替换成以字符串表示的参数a。

#define print(a) cout<<#a<<"="<<(a);int main()
{float a = 2.0;print(a * 3 + 2);return 0;
}

结果:

等号左边:print中的参数以字符串形式输出的结果。

等号右边:参数表达式的运算结果。

##:连接符。将两个表达式连接到一起。

#define member(type,a) type m_##astruct demo
{member(int, a);member(double, b);
};

即:

struct demo
{int m_a;double m_b;
}

如果想要多行宏定义,需要通过\连接:

#define PROPERTY(Type,member) \
private:\
Type m_##member;\
public:\
const Type& get##member() const{return m_##member;}\
void set##member(Type m){m_##member=m;}class example
{PROPERTY(int,age)
};

即:

class example
{
private:int m_age;
public:const int& getage() const { return m_age; }void setage(int m) { m_age = m; }
};

几个预定义的宏:

_LINE_:整数,源文件行号。

_FILE_:字符串,源文件文件名。

_DATE_:字符串,编译日期。

_TIME_:字符串,编译时间。

_cplusplus:整数,编译器版本号。如果编译器完全符合C++标准,那么它的值大于等于199711.

可变参的宏函数:

#define LOG(o,...) fprintf(o,"[%s:%d]",_FILE_,_LINE_);\fprintf(o,_VA_ARGS)

它与普通宏函数的区别是:最后一个参数是省略号。在后面的替换表达式中,省略号位置的参数用宏VA_ARGS替代。预处理器遇到这样的定义时,会将VA_ARGS用实际的参数替代

http://www.dtcms.com/wzjs/590358.html

相关文章:

  • 信息行业网站建设wordpress首页菜单怎么设置
  • 上海市网站建设电话号码哪个网站可以领单做效果图
  • 阿里云 域名 做网站wordpress添加下文件
  • 域名出售后被用来做非法网站江阴建设网站
  • 哪些网站可以做驾考试题莘县网站建设
  • 网站推广平台代理wordpress移动端设置方法
  • 开封网站制作哪家好营口电商平台网站建设
  • 免费的网站建设有哪些推广手段
  • 网站编程 mysql网上购物商城app
  • 妇幼能力建设网站某品牌休闲零食网站建设规划书
  • 还没做域名解析如何访问ftp的网站文件电脑上做免费网站教程视频
  • 天津网站建设wangzhii南宁做网站的有几家
  • 江苏强荣建设有限公司网站沈阳网络营销推广的公司
  • 室内设计网站哪些号网站模板出售
  • 家具技术支持东莞网站建设如何在wordpress中添加背景音乐
  • 游戏秒玩网站wordpress 蓝色企业主题
  • 做资讯网站怎么挣钱wordpress能赚钱
  • 绍兴网站网站建设api接口大全
  • 招聘网站如何做运营做网站注册页面模板
  • 网站建设的7个基本流程商业信息网站大全
  • 怎么制作网站视频播放器Wordpress修改览量点赞量
  • php音乐外链网站源码中铁建设集团有限公司中标项目
  • 做网站如何接单有什么网站可以接单做兼职的
  • 邯郸网站建设哪家好python做网站优势
  • 南通移动网站建设沈阳制作网站的公司
  • 鹤岗住房和城乡建设局网站wordpress用户批量注册
  • 一个公司可以做多少网站wordpress的json api
  • asp.net 新建网站建网站不花钱免费建站
  • flash网站建设教程视频石家庄定制网站建设服务
  • 有了php源码怎么做网站优秀软文营销案例