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

怎样做网站手机和电脑通用重庆建设工程安全管理平台

怎样做网站手机和电脑通用,重庆建设工程安全管理平台,wordpress discuz建站,外贸客户如何开发文章目录 用宏参数创建字符串#xff1a;#运算符函数宏#号作为一个预处理运算符#xff0c;可以把记号转换成字符串 预处理器粘合剂#xff1a;##运算符变参宏#xff1a;...和_ _VA_ARGS_ _参考 用宏参数创建字符串#xff1a;#运算符 函数宏 下面是一个类函数宏#… 文章目录 用宏参数创建字符串#运算符函数宏#号作为一个预处理运算符可以把记号转换成字符串 预处理器粘合剂##运算符变参宏...和_ _VA_ARGS_ _参考 用宏参数创建字符串#运算符 函数宏 下面是一个类函数宏 #define PSQR(X) printf(The square of X is %d.\n, ((X)*(X)));假设这样使用宏 PSQR(8);输出为 The square of X is 64.注意双引号字符串中的X被视为普通文本而不是一个可被替换的记号。 #号作为一个预处理运算符可以把记号转换成字符串 C允许在字符串中包含宏参数。 在类函数宏的替换体中#号作为一个预处理运算符可以把记号转换成字符串。 例如如果x是一个宏形参那么#x就是转换为字符串x的形参名。这个过程称为字符串化stringizing。 /* subst.c -- 在字符串中替换 */ #include stdio.h #define PSQR(x) printf(The square of #x is %d.\n,((x)*(x))) int main(void) {int y 5;PSQR(y);PSQR(2 4);return 0; }该程序的输出如下 The square of y is 25. The square of 2 4 is 36.调用第1个宏时用y替换#x。 调用第2个宏时用2 4替换#x。 预处理器粘合剂##运算符 与#运算符类似##运算符可用于类函数宏的替换部分。 而且##还可用于对象宏的替换部分。 ##运算符把两个记号组合成一个记号。 例如可以这样做 #define XNAME(n) x ## n然后宏 XNAME(4)将展开为 x4。 程序演示了##作为记号粘合剂的用法。 // glue.c -- 使用##运算符 #include stdio.h #define XNAME(n) x ## n #define PRINT_XN(n) printf(x #n %d\n, x ## n); int main(void) {int XNAME(1) 14; // 变成 int x1 14;int XNAME(2) 20; // 变成 int x2 20;int x3 30;PRINT_XN(1); // 变成 printf(x1 %d\n, x1);PRINT_XN(2); // 变成 printf(x2 %d\n, x2);PRINT_XN(3); // 变成 printf(x3 %d\n, x3);return 0; }该程序的输出如下 x1 14 x2 20 x3 30注意PRINT_XN()宏用#运算符组合字符串##运算符把记号组合为一 个新的标识符。 变参宏…和_ VA_ARGS _ 一些函数如 printf()接受数量可变的参数。 C99/C11也对宏提供了这样的工具。虽然标准中未使用“可变”variadic这个词但是它已 成为描述这种工具的通用词虽然C标准的索引添加了字符串化(stringizing)词条但是标准并未把固定参数的函数或宏称为固定函数和不变宏。 通过把宏参数列表中最后的参数写成省略号即3个点…来实现这一功能。这样预定义宏_ VA_ARGS _可用在替换部分中表明省略号代表什么。例如下面的定义 #define PR(...) printf(_ _VA_ARGS_ _)假设稍后调用该宏 PR(Howdy); PR(weight %d, shipping $%.2f\n, wt, sp);对于第1次调用_ _VA_ARGS_ _展开为1个参数Howdy 对于第2次调用_ _VA_ARGS_ _展开为3个参数weight %dshipping $%.2f\n、wt、sp。 因此展开后的代码是 printf(Howdy); printf(weight %d, shipping $%.2f\n, wt, sp);程序演示了一个示例该程序使用了字符串的串联功能和#运算符。 // variadic.c -- 变参宏 #include stdio.h #include math.h #define PR(X, ...) printf(Message #X : __VA_ARGS__) int main(void) {double x 48;double y;y sqrt(x);PR(1, x %g\n, x);PR(2, x %.2f, y %.4f\n, x, y);return 0; }第1个宏调用X的值是1所以#X变成1。 展开后成为 print(Message 1 : x %g\n, x);然后串联4个字符把调用简化为 print(Message 1: x %g\n, x);下面是该程序的输出 Message 1: x 48 Message 2: x 48.00, y 6.9282记住省略号只能代替最后的宏参数 #define WRONG(X, ..., Y) #X #_ _VA_ARGS_ _ #y //不能这样做参考 《C Primer Plus》
http://www.hkea.cn/news/14285967/

相关文章:

  • 南京行业门户网站应用程序开发
  • 衡水移动网站建设费用教育培训网站建设ppt
  • 上海长宁区网站建设文化传播 wordpress
  • 微网站建设价格对比企业建站公司推荐
  • 嘉兴网站定制公司微信公众号手机app
  • 旅游网站建设案例在线教育网站有哪些
  • 有关网页设计与网站建设的文章网站建设综合训练报告
  • 内江建设局网站权威的南通网站建设
  • 石家庄网站建设诚荐优度网络一键生成app软件下载
  • 网站建设业务员论坛外贸网站优化谷歌关键词排名外包
  • 中小企业网站制作公司常见的网页编辑软件
  • 1号店网站模板下载企业装修展厅公司
  • 网站建设与管理 宋一兵网站解决方案
  • 广东微信网站制作多少钱wordpress图片新浪
  • 外贸建站用什么平台好wordpress文档下载
  • 网站 空间 是什么alexa排名前三十
  • 锦州网站建设新闻单位做网站资料需要什么软件
  • 青岛网百度快速seo
  • 自己做网站 需要服务器吗锦州网站建设案例
  • 河北集团网站建设牛栏前网站建设
  • 南宁cms建站网站平台需要做无形资产吗 怎么做6
  • 国家企业信用信息网seo+网站排名
  • 美度手表网站网站开发公司的义务
  • 深圳h5网站建设设计类招聘网站
  • 网站为什么会被kwordpress谷歌广告位插件
  • 免费企业cms建站系统微信小程序短链接生成
  • 个人网站建设的国外文献综述免费网页制作成app
  • 江苏建设厅官方网站人工费南京网站设计收费标准
  • 做一个企业的网站怎么做有户型图怎么免费设计装修
  • 做网站都需要考虑哪些wampserver装wordpress