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

怎样做网站手机和电脑通用网站设计网

怎样做网站手机和电脑通用,网站设计网,广州网站建设服务公司,在线做英语题的网站文章目录 用宏参数创建字符串#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/14295109/

相关文章:

  • 内蒙古建设厅网站网站里的课程配图怎么做
  • 网站建设方案书要写吗网站建设需要学习什么
  • 好网站西安模板做网站
  • 网站建设主机耗电量网站推广排名怎么做
  • 杭州网站设计公司价格免费windows云服务器
  • 网站做维恩图微擎如何做网站
  • 微信支付 网站建设烟台cms建站模板
  • iis新建网站无法浏览手机app开发自学教程
  • 大连网站制作信ls15227济南优化专业的公司
  • 平江区建设局网站模板免费的ppt软件
  • 商城网站备案需要什么吉林华商建设集团网站
  • 没有网站 可以做百度口碑吗可以做音基题的音乐网站
  • 水冶那里有做网站的专业建站推广网络公司
  • wordpress多格式视频播放插件seo发展现状
  • 免费网站建百度发布信息的免费平台
  • 网站建设售后回访话术秦皇岛建设银行网点分布
  • 山东天齐建设集团网站哈尔滨市建设工程交易中心网站
  • 网站忘记备案微信手机官方网站首页
  • 惠州建设局网站做网站需要几个岗位
  • 免费cms建站五指廊坊网络推广优化公司
  • 正能量网站入口免费安全哈尔滨专业网站营销
  • 我自己的网站怎么做关键词优化哪些网站可以做邀请函
  • 河北做网站的天津公司网站推广
  • 开发网站比较好的公司安阳网站建设
  • 网站设计欣赏移动黄骅港务公司
  • jq动画效果网站湘潭网站建设方案表格
  • 网站死链接检查wordpress插件统计
  • 刷题网站开发网站建立使用方法
  • 做的好的响应式网站wordpress 全局js
  • 手机建网站 优帮云软件开发自学需要