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

网站项目开发收费标准最火网页传奇游戏排行榜

网站项目开发收费标准,最火网页传奇游戏排行榜,wordpress更新主机名,小程序开发文档官网一#xff1a;背景 如果大家看过 CLR 源码#xff0c;会发现里面有很多 #define 宏定义,比如说 fusionhelpers.hpp 头文件里。如果你不熟悉 C #xff0c;看到这些 #define 应该会很晕的#xff0c;这篇我们就来简单聊聊 define 的玩法#xff0c;其实说白了很简单, #defi… 一背景 如果大家看过 CLR 源码会发现里面有很多 #define 宏定义,比如说 fusionhelpers.hpp 头文件里。如果你不熟悉 C 看到这些 #define 应该会很晕的这篇我们就来简单聊聊 define 的玩法其实说白了很简单, #define 就是用一个标识符来包装一段 常量 或者 函数体后续要复用这段逻辑时只需用此 标识符 即可。这里要注意的是替换发生在 编译时如果不相信的话可以从汇编上做验证。二define 的简单使用 1. 用 define 定义常量这个是最常用的上一段简单的测试代码#include iostream#define N 10int main() {printf(output: s%d, N); }output: s10接下来我们探究下它的汇编代码。00531921  push        0Ah   00531923  push        offset string s%d (0537B30h)   00531928  call        _printf (05310D2h)   0053192D  add         esp,8从汇编中可以看出并没有出现 N 标识符的影子而是直接将立即数 10 推送到栈上大概就是下面这样。printf(s%d, 10);相信大家也看到了这个简单替换如果你还不信的话我来演示一个 简单替换 的坑参考如下代码#include iostream#define N 102int main() {float f  N / 2;printf(output: s%.1f, f); }output: s11.0哈哈你是不是天真的以为上面的输出是 s6 ? 那就大错特错了这个例子很好的反向证明了 确实是 替换 所致。接下来我们来看下底层汇编是咋样的。00f11925  movss   xmm0, dword ptr [ConsoleApplication1!_real (00f17b44)] 00f1192d  movss   dword ptr [ebp-8], xmm00:000 dp 00f17b44 L1 00f17b44  413000000:000 .formats 41300000 Evaluate expression:Hex:     41300000Decimal: 1093664768Octal:   10114000000Binary:  01000001 00110000 00000000 00000000Chars:   A0..Time:    Sat Aug 28 11:46:08 2004Float:   low 11 high 0Double:  5.40342e-315从汇编代码看f 的值已经算好了存放在 00f17b44 地址上值为 41300000, 通过 .formats 命令可以看出 41300000 转成 float 就是 11很好的证明了它是在编译时就已经处理好了。有了这些基础改进方案就简单了用 () 将 define 体包装一下即可参考如下#define N (102)2. 用 define 定义函数从 CLR 源码上看不仅仅可以定义 常量还可以定义复杂的函数接下来我们就演示一下。#include iostream#define SUM(a,b) abint main() {int a  10;int b  20;int sum  SUM(a, b);printf(output: sum%d, sum); }output: sum30然后再看一下 int sum SUM(a, b) 的汇编代码。00581925  mov         dword ptr [ebp-8],0Ah   0058192C  mov         dword ptr [ebp-14h],14h   00581933  mov         eax,dword ptr [ebp-8]   00581936  add         eax,dword ptr [ebp-14h]可以看到那个 Sum 方法直接被 inline 了高效哈如果语句多的话也可以在  #define 中用  {} 括起来比如下面这样。#include iostream#define SUM(a,b) {int ia; int jb; printf(output: %d%d%d,i,j,(ij));}int main() {int a  10;int b  20;SUM(a,b); }output: 102030好了今天就聊这么多希望对大家有帮助
http://www.pierceye.com/news/686001/

相关文章:

  • 网站地址英文不相关的网站做单项链接可以吗
  • 怎么做网站超链接wordpress 主题 设置
  • 手机电影网站建设如何做网站域名备案
  • 重庆手机网站推广价格网络营销论文参考文献
  • 如何给网站添加搜索关键字做流量网站有收入吗
  • 购物网站的英文如何不让百度收录网站
  • 上海定制网站建设公司哪家好建立公司官网
  • jsp电影网站开发教程滁州网站建设梦天堂
  • 网站建设哪个好一些网站服务器证书有问题
  • 广东省广州市白云区钟落潭镇优化什么建立生育支持政策体系
  • wordpress+代码质量哈尔滨百度seo代理
  • 北京模板网站建设全包中国招标与采购网官网
  • 戴尔公司网站建设成功的关键是什么永久网站
  • 上海青浦做网站做分销网站系统
  • 互联网公司网站建设的目的王烨演员
  • 网站开发图片加载慢如皋建设网站
  • 国家示范校建设成果网站wordpress文章图片alt
  • asp.net网站开发技术物流专线网站建设
  • 免费网站流量统计工具线下推广方法及策略
  • 西安市社交网站制作公司网站建设的参考文献
  • 企业网站内容建设网站开发小程序开发
  • 个人个案网站 类型wordpress群组
  • 微网站建设深圳英文站seo
  • 做网站要钱么网站建设备案多长时间
  • wordpress建站图片效果网站备案前置审批 成都
  • 哈尔滨网站关键词优化手机网站视频播放模板
  • 西安企业做网站贵州毕节建设局网站官网
  • 临沂网站定制室内设计师证书哪个含金量高
  • 国外做化工产品的网站湛江手机网站建设公司
  • 企业网站管理系统如何上传图片湖南网站建设营销推广