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

义乌做网站的百度浏览器极速版

义乌做网站的,百度浏览器极速版,网站建站网站 小说,菜户营网站建设公司在严格意义上的编译过程开始之前#xff0c;C语言预处理器首先对程序代码做了必要的转换处理。预处理器的主要作用是#xff1a; 我们有时需要将某个特定数量在程序中出现的所有实例统统加以修改大多数C语言实现在函数调用时都会带来重大的系统开销 1. 不能忽视宏定义中的空…在严格意义上的编译过程开始之前C语言预处理器首先对程序代码做了必要的转换处理。预处理器的主要作用是 我们有时需要将某个特定数量在程序中出现的所有实例统统加以修改大多数C语言实现在函数调用时都会带来重大的系统开销 1. 不能忽视宏定义中的空格 #define f (x) ((x)-1) 此时f(x)代表 (x)((x)-1) 如果希望定义f(x)为((x)-1)必须这样写 #define f(x) ((x)-1) 空格的规则适用于宏定义但是不适用于宏调用所以f(3)和f (3)的结果都等于2 2. 宏并不是函数 宏定义中出现的所有括号它们的作用时预防引起与优先级有关的问题如果没有括号求绝对值的定义如下 #define abs(x) x0?x:-x 此时abs(a-b)求值的结果将是 a-b0?a-b:-a-b -a-b与我们期望的-(a-b)是不一样的。 正确的实现应该是 #define abs(x) ((x)0)?(x):-(x)) 即使宏定义中的各个参数与整个结果表达式都被括号括起来也仍然还可能有其他问题存在比如说一个操作数如果在两处被用到就会被求值两次。比如 biggestmax(biggest, x[i]); 在宏展开后将会变成 biggest((biggest)(x[i])?(biggest):(x[i])); i可能被执行两次导致错误解决这个问题的办法 确保max中参数没有像--这样的副作用将max使用函数实现 使用宏的另外一个危险是宏展开可能产生非常庞大的表达式占用空间远远超过编程者所期望的空间比如 3. 宏并不是语句 assert宏的一个错误实现 #define assert(e) if (!e) assert_error(_FILE_, LINE_) 但这样会导致一些错误 这个修复方式是把宏体整个括起来即如下 #define assert(e)\{if (!e) assert_error(__FILE__, __LINE__);} 但是这样会带来新的问题上面的例子展开后如下 if(x 0 y 0){if(!(x y)) assert_error(foo.c, 37);}; else{if(!(y x)) assert_error(foo.c, 39);}; 在else之前的分号是一个语法错误。因此assert宏的正确实现如下 #define assert(e) \((void)((e)||_assert_error(__FILE__,__LINE__))) 另外一个实现如下 #define assert(expression) \((void)((expression) || \(printf(Assertion failed: %s, file %s, line %d\n, \ #expression, __FILE__, __LINE__), abort(), 0))) 4. 宏并不是类型定义 宏的一个常见用途是使多个不同变量的类型可在一个地方说明宏定义的这种用法有一个优点——可移植性。但是用宏定义类型会有一些问题还是推荐使用typedef关键字 #define T1 struct foo * typedef struct foo *T2T1 a,b; T2 a,b; 其中T1 a,b将被扩展为 struct foo * a, b; 这个语句中a被定义为一个指向结构的指针而b却被定义为一个结构而不是指针。
http://www.zqtcl.cn/news/375644/

相关文章:

  • 网站建设服务网站网站建设销售实习
  • 网站注册都需要什么给装修公司做推广的网站
  • me域名的网站wordpress 扩展字段
  • 新开三端互通传奇网站企业推广方式有哪些
  • 怎么制作网站页面做理论的网站
  • 哪家公司做跳转网站wordpress 网页缩放
  • 小说网站建设的支柱深圳建设发展集团有限公司
  • 陕西高速公路建设网站做网站不用编程
  • wordpress网站秒开网站建设设计理念
  • html5 网站模板永久免费的仓库管理软件
  • 贵州网站seo厦门网站设计多少钱
  • 哈市哪里网站做的好合作网站seo
  • 找苏州网站建设网站维护提醒php文件
  • 哪些网站做推广效果好与市场营销有关的网站
  • 有什么网站可以做设计赚钱吗专业vi设计公司哪家强
  • 一般的网站是由什么语言做的网站建设怎么问问题
  • 开源系统 网站阿里云虚拟主机网站
  • 摄影师作品网站网站怎么做搜素引擎
  • 做网站定金是多少钱开网站建设公司心得
  • 网站不备案怎么做网页淘宝客电子商务的网站建设的可用性
  • 傻瓜自助建站软件怎样进网站空间服务器
  • 黑龙江网站建站建设wordpress 邮件
  • 免费发布信息网站有哪些豆芽网站建设
  • 无锡做网站优化公司互动营销用在哪些推广上面
  • 每一个网站都是响应式吗销售渠道策略
  • 凡科平台网站怎么建设广州网站建设信科网络
  • 网站建设公司的服务特点seo实战密码电子书
  • 网站开发保密协议范本北京市建设工程信息网查询
  • 怎样跟网站做优化呢wordpress实现新闻列表
  • 济南手机网站定制费用wordpress安装文档下载