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

系统网站建设codecanyon – wordpress脚本插件完整打包

系统网站建设,codecanyon – wordpress脚本,插件完整打包,网站自己做还是找人做,网站建设目的是什么宏 在C语言中宏有三种形式: 定义符号常量定义傻瓜表达式定义代码段 在使用宏的过程中需要注意的是#xff0c;宏的作用仅仅是在预处理阶段对代码进行替换#xff0c;而非进行运算#xff0c;所以在使用时#xff0c;如果出现了我们预期之外的结果#xff0c;很有可能是宏…宏 在C语言中宏有三种形式: 定义符号常量定义傻瓜表达式定义代码段 在使用宏的过程中需要注意的是宏的作用仅仅是在预处理阶段对代码进行替换而非进行运算所以在使用时如果出现了我们预期之外的结果很有可能是宏没有处理好。下面就挨个演示一下。 定义符号常量 着一种形式比较简单只是单纯的替换这里对该种情况不做过多介绍 #includestdio.h #define PI 3.1415926535int main(){int r 5;printf([r] %d [S] %f, r, PI * r * r); }定义傻瓜表达式 可以通过宏封装一个简易的表达式但是为什么叫傻瓜表达式呢正如之前所说宏只是进行替换而非进行计算所以在没有考虑周全的情况下很容易出错。下面我们以封装一个比较函数为例返回大的值。 分别用到下面五组示例 #includestdio.h #define MAX(a, b) a b ? a : b #define P(func) printf(%s %d\n, #func, func);int main(){int a 7;P(MAX(2, 3));P(5 MAX(2, 3));P(MAX(2 ,MAX(2, 3)));P(MAX(2, 3 4 ? 3 : 4));P(MAX(a, 3)); }先解释一下代码主函数部分是我们的测试用例不需要赘述。封装的MAX(a,b)表达式就是我们想要实现的功能。下面的P宏是我为了方便实现的打印的宏其中#func这个参数的意义就是字符串话可以使得运行结果更容易观察。 运行结果 可以看到除了第一个测试用例基本上这些都不是正确答案。为了探究原因我们就需要看到把宏展开也就是预处理之后的样子。使用gcc -E filename命令即可。 可以看到他们宏仅仅是做了替换实际的运算顺序与我们预期的不符合所以我们就需要使用小括号来使得运算顺序满足我们的预期。 #includestdio.h #define MAX(a, b) ((a) (b) ? a : b) #define P(func) printf(%s %d\n, #func, func);int main(){int a 7;P(MAX(2, 3));P(5 MAX(2, 3));P(MAX(2 ,MAX(2, 3)));P(MAX(2, 3 4 ? 3 : 4));P(MAX(a, 3)); } 可以看到前四个结果已经达到我们预期的结果了。但是第五个结果与预期不符合。可以从上面预处理之后的代码中可以看出它的错误并不是计算顺序的原因而是我们对a访问之后自增1而后进行返回的原因若想修复这个bug我们需要一个中间变量来记住增1前的a值 定义代码段 #includestdio.h//#define MAX(a, b)(((a) (b) ? a : b))#define MAX(a, b)({\__typeof(a) _a a;\__typeof(b) _b b;\_a _b ? _a : _b;\ })#define P(func) printf(%s %d\n, #func, func);int main(){int a 7;P(MAX(2,3));P(5 MAX(2,3));P(MAX(2,MAX(2,3)));P(MAX(2,3 4 ? 3 : 4));P(MAX(a,6)); } 运行结果 这里解释一下新出现的t__typeof,功能就是提取变量类型的关键字然后进行定义也就是说 __typeof(a) _a a;改行代码与 int _a a;相同。当宏有多行的时候需要使用\来链接。 内置的宏 宏说明__ DATE __日期Mmm dd yyy__ FILE __文件名__ LINE __行号__ TIME __时间hhmmss__ func __函数名(非标准)__ Func __函数名(非标准)__ PRETTY_FUNCTION __更详细的的函数信息(非标准) 其中非标准的含义是指不同的环境下可能会出现不同的结果或者是不存在该宏。比如我是在ubantu系统下运行的没有__Func__的宏 #includestdio.h #define P(a) printf([%s] %s\n, #a, a);int main(){P(__DATE__);P(__FILE__);printf([__LINE__] %d, __LINE__);P(__TIME__);P(__func__);P(__PRETTY_FUNCTION__); } 条件式编译 在宏当中也可以实现条件分支的功能实现代码剪裁 函数说明#ifdef DEBUG是否定义了DEBUG#ifndef DEBUG是否没定义了DEBUG#if MAX_N 5宏MAX_N 是否等于5#ieif MAX_N 4否则宏MAX_N 是否等于4#else#endif 打印日志信息 编写一个程序通过宏实现一个log()功能打印打印所在文件行号函数以及内容。当需要DEBUG时log()可以使用不需要DEBUG时则log()函数无任何作用 #includestdio.h#define DEBUG #ifdef DEBUG #define log(frm, args...){\printf([FILE]:%s [LINE]:%d [func]:%s [content]:, __FILE__, __LINE__,__func__);\printf(#frm, ##args);\printf(\n);\ } #else #define log(frm, args...) #endifint add(int a, int b){return a b; }int main(){log(add(1 , 5)); }输出结果[FILE]:log.c [LINE]:24 [func]:main [content]:add(1 , 5)#和”##“的作用 ”#“是将后面的内容字符串化保证输出”##“是连接作用可以连接两个变量名在这里是保证当log传入参数只有一个时不会报错(int a, b, ab; a##b 是与ab等价的) 泛型宏(Generic macro) #includestdio.h #define TYPE(a) _Generic((a), \int : %d\n,\double: %lf\n, \char * : %s\n\ )int main(){int a 1;double b 4.0;char string[] hello;printf(TYPE(a),a);printf(TYPE(b), b);printf(TYPE(string), string); }运行结果1 4.000000 hello 从上图可以看到除了泛型宏以外自定义的函数在主函数之外也可以运行而且会先于主函数运行。这是因为我们在函数上面为其添加了属性使其可以能够单独运行。尽管函数可以独立运行但是一个程序是不可以没有主函数的否则会有编译错误。 补充字符串 在预处理阶段不只是宏还有头文件也会被展开在这里简单介绍一下一个比较重要的头文件string.h该头文件包含对于字符串的操作比较方便。 函数说明strlen(str)计算字符串长度以\0作为结束符strcmp(str1, str2)字符串比较strcpy(dest, src)字符串拷贝strcmp(str1, str2, n)安全字符串比较strcpy(dest, src, n)安全字符串拷贝memcpy(str1 str2 n)内存拷贝memcmp(str1 str2 n)内存比较memset(str,c, n)内存设置
http://www.pierceye.com/news/104731/

相关文章:

  • 网站建设中要多使用图片258网站建设
  • 做多语言网站教程开网页慢是什么原因
  • 汽车商城网站模板seo公司网站推广
  • 网站备案查询工信部官网网站建设费用推荐网络专业
  • 网站开发费用是研发费用国内做seo最好公司
  • 什么是网站建设公司企业网站后台管理
  • 做网站阿里巴巴好还是百度好柠檬网络科技网站建设
  • 做个网站要多少钱网站建设工作 方案
  • 一个主体如何添加网站室内设计公司的名字
  • 中国建设学会网站洛阳市住房和城乡建设局网站
  • 北京网站优化方式做物流的网站都有什么风险
  • 零基础学做网站页怎么部署wordpress
  • 网站如何做死链接提交筑站网络推广
  • 小说网站开发php网站后台如何修改文字
  • 网站制作是那个带有客户案例的网站
  • 中国纪检监察报数字报湛江关键词优化平台
  • 网站品牌词如何优化东莞公司网站建设营销型网站建设
  • 鞍山网站建设营销想把自己做的网站放到网上
  • 松原公司做网站青岛工程建设管理信息网官方网站
  • 一个空间2个网站网站 手机 app
  • 河北网站建设方案详细磁器口网站建设
  • 怎么做网站树洞wordpress edd 会员
  • 购物网站中加减数目的怎么做仿站违法吗
  • 代理ip访问网站局门户网站的建设
  • 建网站业务如何开展阳江房产信息网官网
  • 企业网站建设套餐费用网站开发完后期维护重要吗
  • 3营销型网站建设湖北短视频seo推荐
  • 鸿运通网站建设未成年怎么在网上卖东西
  • 郑州网站推广排名公司商会小程序开发一个多少钱啊
  • wordpress单页网站在本页跳转心理网站的建设与维护